2015-06-30 117 views
1

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

這是一個控制檯應用程序,但是東西讓我感到困惑的是子線程能夠工作,即使主線程退出。 threads

根據我的理解,當主線程/進程退出時,所有的子線程都會被終止,這就是爲什麼通常我們發信號並等待子線程在主線程停止之前完成的原因。 我是錯的還是行爲在.NET中因參考而改變?

+1

這是肯定不主,子線程之前,但對前臺和後臺線程。任何活動的前臺線程都會使進程保持活動狀態。 –

回答

4

如果您希望子線程在父線程終止時中止,則必須將其設置爲後臺線程。

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

否則,所有的前臺線程運行到結束的過程中退出

+0

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

相關問題