/// <summary> /// Called to dispose of unmanaged resources. /// </summary> public void Dispose() { if (!_isDisposed) { _isDisposed = true; if (_process != null) { if (_process.StartInfo.RedirectStandardOutput) { _process.OutputDataReceived -= OnOutputDataReceived; } if (_process.StartInfo.RedirectStandardError) { _process.ErrorDataReceived -= OnErrorDataReceived; } _process.Dispose(); } var disp = _redirector as IDisposable; if (disp != null) { disp.Dispose(); } if (_waitHandle != null) { _waitHandle.Dispose(); } } }
private void HandleExited(object state, bool timedout) { int exitCode; if (!NativeMethods.GetExitCodeProcess(_processWaitHandle.SafeWaitHandle, out exitCode)) { _completion.SetException(new Win32Exception()); } _processWaitHandle.Dispose(); _completion.SetResult(exitCode); }
/// <summary> /// Called to dispose of unmanaged resources. /// </summary> public void Dispose() { if (!_isDisposed) { _isDisposed = true; if (_process != null) { _process.Dispose(); } var disp = _redirector as IDisposable; if (disp != null) { disp.Dispose(); } if (_waitHandle != null) { _waitHandle.Dispose(); } } }