private void logItem(LoggingItem li) { if (logQueueMaxSize > 1) { lock (logQueue) { logQueue.Enqueue(li); if (logQueue.Count > logQueueMaxSize) { lock (_sw) { foreach (var logItem in logQueue) { _sw.Write(logItem.ToString()); } _sw.Flush(); } logQueue.Clear(); } } } else lock (_sw) { _sw.Write(li.ToString()); _sw.Flush(); } }