c# - 线程、进程和 Application.Exit()

标签 c# .net multithreading process

我的应用程序由主消息循环 (GUI) 和线程 (Task.Factory) 组成。

在线程中,我使用 var p = new Process();

调用一些第 3 方应用程序

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

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

更新:

旧的:

p.WaitForExit();

新:

while (!p.WaitForExit(1000))
{
    if (FlagToExit)
    {
        p.Kill();
        return;
    }
}

最佳答案

简单地试试这个

当你创建一个线程时,让它成为后台线程

Thread.IsBackground = true;

Application.Exit();

所有线程将被关闭

关于c# - 线程、进程和 Application.Exit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689564/

相关文章:

c# - 当命名空间不再可用时解析 xml 文档

c# - Entity Framework 7 FromSql 存储过程返回值

multithreading - PowerShell 多线程压缩目录

c# - 如何使静态变量线程安全

c# - 为什么此更新会锁定 Oracle 10 中的行?

c# - 如果输入几乎相同,我该如何检查?

c# - 查看我的网页的人数

c# - 如何在 DLL 中捆绑 index.html、jquery.js、main.css 以在 WPF 中使用?

c# - 如果用户离开网站,SignalR 是否会调用 OnDisconnected

ruby - 为什么 Ruby 中对数组的 << 操作不是原子的?