コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
        /// <summary>
        /// Pause logs watching
        /// </summary>
        public void Pause()
        {
            if (State == LogHandlerState.Stopped)
            {
                return;
            }

            State = LogHandlerState.Pausing;
        }
コード例 #3
0
        /// <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;
        }