private void OnListen(object state) { try { LogFileThreadInfo threadInfo = state as LogFileThreadInfo; string fileName = threadInfo.FileName; UserModeQueue <string> queue = threadInfo.FileItem.Queue; StringBuilder sb = threadInfo.FileItem.Builder; while (!_mre.Wait(10)) { try { string content = queue.Dequeue(); if (_mre.IsSet) { if (!content.IsEmpty()) { this.WriteContentToFile(fileName, content); } break; } this.WriteContentToFile(fileName, content); } catch (Exception ex) { this.WriteExceptionToEventLog(ex); } } } catch (Exception ex) { this.WriteExceptionToEventLog(ex); } finally { _ceShutdown.Signal(); } }
private void InitListenForFile(string fileName) { try { LogFileThreadInfo threadInfo = new LogFileThreadInfo() { FileName = fileName, FileItem = new LogFileItem(_mre), }; _fileLogItems.Add(fileName, threadInfo.FileItem); threadInfo.FileItem.Builder.AppendLine(this.FormatContent("(# START OF LOG #)")); Thread thListen = new Thread(new ParameterizedThreadStart(this.OnListen)); thListen.IsBackground = true; thListen.Name = "LogThread_" + Path.GetFileName(fileName); thListen.Start(threadInfo); _ceShutdown.Reset(_fileLogItems.Count); } catch (Exception ex) { this.WriteExceptionToEventLog(ex); } }
private void InitListenForFile(string fileName) { try { LogFileThreadInfo threadInfo = new LogFileThreadInfo() { FileName = fileName, FileItem = new LogFileItem(_mre), }; _fileLogItems.Add(fileName, threadInfo.FileItem); threadInfo.FileItem.Builder.AppendLine(this.FormatContent("(# START OF LOG #)")); Thread thListen = new Thread(new ParameterizedThreadStart(this.OnListen)); thListen.IsBackground = true; thListen.Name = "LogThread_" + Path.GetFileName(fileName); thListen.Start(threadInfo); _ceShutdown.Reset(_fileLogItems.Count); } catch (Exception ex) { this.WriteExceptionToEventLog(ex); } }