我已经设置了一个Windows服务,该服务会不断监听Torch浏览器何时开始运行,然后在10秒钟后关闭程序。问题是当您启动Torch浏览器时,根据时钟速度,它需要4到5秒才能启动。在我的项目中,我使用了Process.Kill()
方法来结束该过程。这是我用来杀死的代码:
Process[] procs = Process.GetProcessesByName("torch");
Timer t = new Timer();
t.Elapsed += new ElapsedEventHandler((object sender, ElapsedEventArgs e) => KillAll(procs));
t.AutoReset = false;
t.Enabled = true;
private void KillAll(Process[] procs)
{
foreach(Process proc in procs)
{
proc.Kill();
}
}
如何确保GUI进程完全加载后计时器启动?
答案 0 :(得分:0)
根据建议,您可以使用WaitForInputIdle()查看该过程是否准备就绪:
WaitForInputIdle可以随时使用,而不仅仅是在应用过程中 启动。
您还没有说明它正在运行哪种类型的应用程序。在杀死进程之前,这有十秒钟的阻塞睡眠时间:
<SomeContext.Consumer>
{value => <ChildComponent value={value}>}
</SomeContext.Consumer>
它将在循环中等待,直到所有“火炬”进程准备就绪,睡眠十秒钟,然后全部杀死。