线程,进程和Application.Exit()

zer*_*kms 3 .net c# multithreading process

我的应用程序包括主消息循环(GUI)和线程(Task.Factory).

在线程中我用一些第三方应用程序调用 var p = new Process();

但是当我Application.Exit();在消息循环中调用时- 我可以看到在线程中启动的进程仍然在内存中并且正在执行.

所以问题是 - 如何Application.Exit();在调用之后立即杀死所有线程和进程?

UPD:

旧:

p.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

新:

while (!p.WaitForExit(1000))
{
    if (FlagToExit)
    {
        p.Kill();
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

Shr*_*oni 8

试试吧

当你创建一个线程使它成为后台线程

Thread.IsBackground = true;
Run Code Online (Sandbox Code Playgroud)

并且 Application.Exit();

所有线程都将被关闭