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;
     }
 }