private void Dispose(bool disposing) { _isRunning = false; if (_soundPlayer != null) { _soundPlayer.Dispose(); _soundPlayer = null; } if (_playbackThread != null && _playbackThread.IsAlive) { _playbackThread.Join(200); if (_playbackThread.IsAlive) { _playbackThread.Abort(); } _playbackThread = null; } if (_loadingQueue != null) { _loadingQueue.Dispose(); _loadingQueue = null; } }