/// <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(); }
/// <summary> /// Release resources. /// </summary> protected override void DisposeManaged() { // сначала удаляем поставщиков логов Sources.Clear(); lock (_syncRoot) { _pendingMessages.Clear(); _pendingMessages.Add(_disposeMessage); } // сбрасываем в логи то, что еще не сбросилось и выключаем таймер ImmediateFlush(); _disposeMessage.Wait(); _flushTimer.Dispose(); base.DisposeManaged(); }