public void Dispose() { AssertIsMainThread(); Interlocked.Exchange(ref _disposed, 1); DisconnectFromIdle(); } }