public void Dispose() { if (!m_disposed) { if (_provider != null) { _provider.CancelProviding(); _provider.Dispose(); } if (_cmmbStreamQueue != null) { _cmmbStreamQueue.Clear(); _cmmbStreamQueue.Dispose(); } } m_disposed = true; GC.SuppressFinalize(this); }