protected virtual void Dispose(bool disposing) { ReleaseUnmanagedResources(); if (disposing) { if (WorkBytesEvent != null) { WorkBytesEvent.Dispose(); } if (OrigBytesEvent != null) { OrigBytesEvent.Dispose(); } if (DelayBytesEvent != null) { DelayBytesEvent.Dispose(); } if (WorkEnergyEvent != null) { WorkEnergyEvent.Dispose(); } if (FreqWaveEvent != null) { FreqWaveEvent.Dispose(); } if (OrigThread != null) { OrigThread.Abort(); if (OrigThread.ThreadState != ThreadState.Aborted) { Thread.Sleep(100); } } if (DelayThread != null) { DelayThread.Abort(); } if (WorkThread != null) { WorkThread.Abort(); if (WorkThread.ThreadState != ThreadState.Aborted) { Thread.Sleep(100); } } if (EnergyThread != null) { EnergyThread.Abort(); } if (FreqThread != null) { FreqThread.Abort(); } } }
/// <summary> /// Disables the updater. /// </summary> public void Disable() { IsEnabled = false; if (WorkThread == null) { return; } if (WorkThread.ThreadState == ThreadState.Running) { WorkThread.Abort(); } WorkThread = null; }