感谢阅读。
我编写了一个试图关闭应用程序所有进程的应用程序,如果进程在60秒后无法正常关闭,则会终止该进程。
foreach (Process obj in Process.GetProcessesByName(application_name))
{
logyaz("Waiting for " + obj.ProcessName + " to exit at " + DateTime.Now);
obj.CloseMainWindow();
obj.WaitForExit(60000);
}
这是等待进程关闭的地方。它完美无缺。
但我想实施一些东西。我不想一个接一个地等待所有进程,我想创建线程和进程一样多,并缩短等待时间。
之前我创建了线程,但它是硬编码的,我从来没有创建它们的动态数量。
那你建议我做什么呢?
感谢您的帮助。
答案 0 :(得分:3)
尝试使用并行编程。
Parallel.ForEach(Process.GetProcessesByName(application_name),
(Process obj) =>
{
logyaz("Waiting for " + obj.ProcessName + " to exit at " + DateTime.Now);
obj.CloseMainWindow();
obj.WaitForExit(60000);
});
Parallel是一个静态类,它为您提供了创建易于阅读的多线程代码的机会。多亏了这一点,你不仅可以创建并行的foreach循环,还可以创建循环并保存执行结果。