예제 #1
0
 public int?GetExitCode()
 {
     InteropMethods.GetExitCodeProcess(myProcessHandle, out var exitCode);
     if (exitCode != InteropMethods.STILL_ACTIVE)
     {
         return(exitCode);
     }
     return(null);
 }
예제 #2
0
        public int?WaitForExit(TimeSpan timeout)
        {
            var waitTime = Stopwatch.StartNew();

            do
            {
                InteropMethods.GetExitCodeProcess(myProcessHandle, out var exitCode);
                if (exitCode != InteropMethods.STILL_ACTIVE)
                {
                    return(exitCode);
                }
                Thread.Sleep(33);
            } while (waitTime.Elapsed < timeout);

            return(null);
        }