public void Dispose() { if (!_disposed) { _disposed = true; _device.PlaybackStart -= _device_PlaybackStart; _device.PlaybackProgress -= _device_PlaybackProgress; _device.PlaybackStopped -= _device_PlaybackStopped; _updateTimer.Dispose(); _device.Dispose(); } }