private void ConnectToIdle() { AssertIsMainThread(); if (!_connectedToIdle && !IsDisposed) { _connectedToIdle = true; _idleConnectTime = DateTime.UtcNow; _shell.Idle += OnIdle; _shell.Terminating += OnTerminate; } }