Пример #1
0
 /// <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();
         }
     }
 }
Пример #2
0
            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);
            }
Пример #3
0
 /// <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();
         }
     }
 }