Example #1
0
        /// <summary>
        /// Release resources.
        /// </summary>
        protected override void DisposeManaged()
        {
            Sources.Clear();

            lock (_syncRoot)
            {
                _pendingMessages.Clear();
                _pendingMessages.Add(_disposeMessage);
            }

            // flushing accumulated messages and closing the timer

            ImmediateFlush();

            _disposeMessage.Wait();
            _flushTimer.Dispose();

            base.DisposeManaged();
        }
Example #2
0
        /// <summary>
        /// Release resources.
        /// </summary>
        protected override void DisposeManaged()
        {
            // сначала удаляем поставщиков логов
            Sources.Clear();

            lock (_syncRoot)
            {
                _pendingMessages.Clear();
                _pendingMessages.Add(_disposeMessage);
            }

            // сбрасываем в логи то, что еще не сбросилось и выключаем таймер
            ImmediateFlush();

            _disposeMessage.Wait();
            _flushTimer.Dispose();

            base.DisposeManaged();
        }