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()来彻底终止应用程序。