C#子线程仍在工作,甚至主线程退出

时间:2015-06-30 03:15:41

标签: c# multithreading

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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