即使主线程退出,C# 子线程仍在工作

标签 c# multithreading

我碰巧从 msdn 上读到了如下的 Semaphore 类示例: https://msdn.microsoft.com/en-us/library/system.threading.semaphore%28v=vs.110%29.aspx

这是一个控制台应用程序,但是让我感到困惑的是子线程甚至可以在主线程退出时工作。 threads

据我了解,当主线程/进程退出时,所有子线程都将终止,这就是为什么我们通常在主线程停止之前发出信号并等待子线程完成。 是我错了,还是由于引用,.net 中的行为发生了变化?

最佳答案

如果您希望子线程在父线程终止时中止,则必须将其设置为后台线程。

t.IsBackground = true;
t.Start(i);

否则,所有前台线程在进程退出前运行完毕

关于即使主线程退出,C# 子线程仍在工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128935/

相关文章:

c# - MVC Ajax.ActionLink 找不到 POST 方法

c# - 为什么 C# 中的 sizeof(bool) == sizeof(byte)?

c# - 与 FK 的一对一关系不同于 PK

java - Mac#doFinal() 在 Java 中是线程安全的吗?

python - 扩展 threading.Timer 以从函数返回值给出 TypeError

c# - 提取 .zip 存档的最快方法

c# - Refit ApiException 的最佳重试策略?

java - 套接字通信: Thread hangs

单例作用域类方法中的 Java 线程安全

java - 登录多线程环境