1

谢谢阅读。

我编写了一个尝试关闭应用程序所有进程的应用程序,如果一个进程在 60 秒后无法正常关闭,它会终止该进程。

foreach (Process obj in Process.GetProcessesByName(application_name))
{
     logyaz("Waiting for " + obj.ProcessName + " to exit at " + DateTime.Now);
     obj.CloseMainWindow();
     obj.WaitForExit(60000);
}

这是它等待进程关闭的地方。它工作得很好。

但我想实现一些东西。我不想一一等待所有进程,我想创建与进程一样多的线程并缩短等待时间。

我之前创建了线程,但它是硬编码的,我从未创建过动态数量的线程。

那么你建议我怎么做呢?

感谢您的帮助。

4

1 回答 1

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 循环,还可以创建 for 循环并保存它们的执行结果。

于 2013-09-20T10:53:23.547 回答