protected virtual void Dispose(bool disposing) { if (_isDisposed) { return; } if (disposing) { if (IndisposableStates.HasFlag(PowerShell.InvocationStateInfo.State)) { PowerShell.BeginStop( asyncResult => { PowerShell.Runspace = null; PowerShell.Dispose(); }, state: null); } else { PowerShell.Runspace = null; PowerShell.Dispose(); } _frameExited.Release(); } _isDisposed = true; }