private static void FlushLogQueue(ParentClass parent) { lock (logQueue) { IDbLearnLoggingConnector con = GetLearnLoggingConnector(parent); while (logQueue.Count > 0) { con.CreateLearnLogEntry(logQueue.Dequeue()); } } }
private static void LearnLogWriter() { Thread.CurrentThread.IsBackground = true; Thread.CurrentThread.Name = "LogWriterThread"; ParentClass parent = new ParentClass(new DummyUser(new ConnectionStringStruct()), null); while (true) { try { LearnLogStruct?lls = null; lock (logQueue) { while (logQueue.Count == 0) { Monitor.Wait(logQueue); } if (logQueue.Count > 0) { lls = logQueue.Dequeue(); } } if (lls.HasValue) { if (hasParentChanged) { lock (globalParent) { parent = globalParent; hasParentChanged = false; } } IDbLearnLoggingConnector learnLogConnector = GetLearnLoggingConnector(parent); learnLogConnector.CreateLearnLogEntry(lls.Value); } } catch (Exception ex) { Trace.WriteLine("Error in learnLogWriter: " + ex.Message); } } }