/// <summary> /// Start logs watching or resume from pause /// </summary> public void Start() { if (State == LogHandlerState.Started) { return; } if (_disposedValue) { return; } if (string.IsNullOrEmpty(FileName)) { return; } State = LogHandlerState.Started; if (_worker == null) { _worker = new Thread(MonitorFile) { IsBackground = true, Priority = ThreadPriority.BelowNormal }; _worker.Start(); } }
/// <summary> /// Pause logs watching /// </summary> public void Pause() { if (State == LogHandlerState.Stopped) { return; } State = LogHandlerState.Pausing; }
/// <summary> /// Stop Logs watching /// </summary> public void Stop() { if (State == LogHandlerState.Stopped) { return; } if (_disposedValue) { return; } if (_worker != null) { try { _worker.Abort(); } catch (ThreadAbortException) { } _worker = null; } State = LogHandlerState.Stopped; }