private void ServiceHelper_ServiceStopping(object sender, EventArgs eventArgs) { // Shutdown algorithm processing framework StopAlgorithmProcessing(); // Dispose of run-time log if ((object)m_runTimeLog != null) { m_serviceHelper.ServiceComponents.Remove(m_runTimeLog); m_runTimeLog.ProcessException -= ProcessExceptionHandler; m_runTimeLog.Dispose(); m_runTimeLog = null; } if (m_allowServiceMonitors && (object)m_serviceMonitors != null) { m_serviceMonitors.AdapterLoaded -= ServiceMonitors_AdapterLoaded; m_serviceMonitors.AdapterUnloaded -= ServiceMonitors_AdapterUnloaded; m_serviceMonitors.Dispose(); } // Deregister event handlers m_serviceHelper.ServiceStarting -= ServiceHelper_ServiceStarting; m_serviceHelper.ServiceStarted -= ServiceHelper_ServiceStarted; m_serviceHelper.ServiceStopping -= ServiceHelper_ServiceStopping; // Detach from handler for unobserved task exceptions TaskScheduler.UnobservedTaskException -= TaskScheduler_UnobservedTaskException; ShutdownHandler.InitiateSafeShutdown(); }
/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> /// <filterpriority>2</filterpriority> public void Dispose() { // Stop file monitor timer if ((object)m_fileMonitor != null) { m_fileMonitor.Elapsed -= FileMonitor_Elapsed; m_fileMonitor.Dispose(); m_fileMonitor = null; } // Dispose of fault results writers if ((object)m_resultsWriters != null) { m_resultsWriters.Dispose(); m_resultsWriters = null; } }
private void ServiceHelper_ServiceStopping(object sender, EventArgs eventArgs) { m_serviceMonitors.AdapterLoaded -= ServiceMonitors_AdapterLoaded; m_serviceMonitors.AdapterUnloaded -= ServiceMonitors_AdapterUnloaded; m_serviceMonitors.Dispose(); }