public override void Dispose() { if (_cmdProcess != null) { if (!ExceptionUtilities.EatExceptionsNull(() => _cmdProcess.HasExited) == false) { _cmdProcess.CancelErrorRead(); _cmdProcess.CancelOutputRead(); _cmdProcess.Kill(); } _cmdProcess.Dispose(); _standardInput.Dispose(); _cmdProcess = null; } }