Beispiel #1
0
 public void Close()
 {
     if (Proc != null && !Proc.HasExited)
     {
         try
         {
             Proc.CloseMainWindow();
         }
         catch
         {
             try
             {
                 Proc.Kill();
             }
             catch
             {
             }
         }
         while (Proc.HasExited)
         {
             Thread.Sleep(250);
         }
     }
     Proc?.Dispose();
     if (ProcWithJobObject != null)
     {
         ProcWithJobObject.TerminateProc();
     }
 }
Beispiel #2
0
 public async Task CloseAsync(CancellationToken cancellationToken = default(CancellationToken))
 {
     if (Proc != null && !Proc.HasExited)
     {
         try
         {
             Proc.CloseMainWindow();
         }
         catch
         {
             try
             {
                 Proc.Kill();
             }
             catch
             {
             }
         }
         while (!Proc.HasExited)
         {
             await Task.Delay(250);
         }
     }
     Proc?.Dispose();
     if (ProcWithJobObject != null)
     {
         ProcWithJobObject.TerminateProc();
     }
 }