C#中多線程的線程加.IsBackground = true與不加有什么區別?
按照MSDN上講:“獲取或設置一個值,該值指示某個線程是否為后台線程。” 其實這個解釋並不到位,至少應該解釋一下后台線程的概念!
https://docs.microsoft.com/zh-cn/dotnet/standard/threading/foreground-and-background-threads
針對於這個問題,我搜索了相關內容,下面是收集來的內容,來解釋后台線程!
要點:
1、當在主線程中創建了一個線程,那么該線程的IsBackground默認是設置為FALSE的。
2、當主線程退出的時候,IsBackground=FALSE的線程還會繼續執行下去,直到線程執行結束。
3、只有IsBackground=TRUE的線程才會隨着主線程的退出而退出。
4、當初始化一個線程,把Thread.IsBackground=true的時候,指示該線程為后台線程。后台線程將會隨着主線程的退出而退出。
5、原理:只要所有前台線程都終止后,CLR就會對每一個活在的后台線程調用Abort()來徹底終止應用程序。