首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前台和后台线程

前台和后台线程
EN

Stack Overflow用户
提问于 2016-11-08 21:44:59
回答 1查看 476关注 0票数 1

我是Stack Overflow的新手。在这里看了很多东西,但今天注册了。刚刚开始了一个多线程课程。

我在理解什么时候使用前台和后台线程时遇到了问题。我对线程是个新手。它们之间有什么优势和劣势?当我设置属性时,我应该考虑什么?

对我来说,使用后台似乎很方便,因为这意味着我不必在关闭应用程序的过程中处理线程,对吧?我的老师告诉我,大多数时候都使用前台线程,但没有解释为什么,至少在我理解的方式。

什么时候使用前台线程,什么时候使用后台线程,我能得到什么好的例子吗?

我看到C#标准库默认将Thread类构造函数创建的线程设置为前台。而ThreadPool在默认情况下是背景。这样做的理由是什么?为什么他们要这样写这个库呢?(我知道这个属性是可以改变的,我只是想知道为什么它们默认是这样的)。

EN

回答 1

Stack Overflow用户

发布于 2016-11-08 22:01:20

我不是.Net专家,但这是关于背景属性的official documentation

后台线程与前台线程相同,不同之处在于后台线程不会阻止进程终止。一旦属于某个进程的所有前台线程都已终止,公共语言运行库就会结束该进程。任何剩余的后台线程都会停止,并且不会完成。

对于线程池的情况,我们可以假设线程池只管理子系统的“活动”,而其他“主”(前台)线程是为了管理更高级别(即系统)的“活动”而存在的。当系统级线程处于活动状态时,它会阻止进程停止。而线程池任务通常不够重要,不足以强制进程存活。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40488509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档