C# System.Diagnostics.Process : how to exit a process if it takes more than, 说,10 秒?

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

但它不起作用。

这有可能吗?

最佳答案

您可以使用 WaitForExit方法:

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

关于C# System.Diagnostics.Process : how to exit a process if it takes more than, 说,10 秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708664/

相关文章:

java: 停止子进程

c++ - 如何轮询一个字节最多 1ms?

java - 如何测量频繁中断的流程/方法的准确执行时间?

c# - XmlSerializer。保留空字符串属性?

c# - FileInfo 的空对象模式

Windows:具有重定向输入和输出的子进程

linux - 计算散列中的条目以及它们更改的频率

c# - 如何检索应用程序类别以外的事件日志?

c# - 调用 .Show on new Window 时 UI 卡住

python - 脚本 B 减慢了脚本 A