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

问题描述:

我正好从MSDN如下读Semaphore类样品: https://msdn.microsoft.com/en-us/library/system.threading.semaphore%28v=vs.110%29.aspxC#子线程仍在工作,即使主线程退出

这是一个控制台应用程序,但是东西让我感到困惑的是子线程能够工作,即使主线程退出。 threads

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

+1

这是肯定不主,子线程之前,但对前台和后台线程。任何活动的前台线程都会使进程保持活动状态。 –

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

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

否则,所有的前台线程运行到结束的过程中退出

+0

谢谢,它是在.net中引入的一个概念。 – Mulder2008