C#System.Diagnostics.Process:如果超过10秒,如何退出进程?

Ale*_*lex 1 c# process timing

我尝试了以下代码:

p = StartProcess("some_process.exe");
DateTime startTime = DateTime.Now;
p.Start();
while (!p.HasExited)
{
    executeTime = (DateTime.Now - startTime).Milliseconds;

    if (executeTime > 10000) // 10 seconds
    {
       Console.Write("Test \"" + inputTest + "\" failed: takes more than 10 seconds");
       break;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

有可能吗?

Dar*_*rov 12

您可以使用WaitForExit方法:

if (!p.WaitForExit((int)TimeSpan.FromSeconds(10).TotalMilliseconds))
{
    // timeout exceeded while waiting for the process to exit
}
Run Code Online (Sandbox Code Playgroud)