繁体   English   中英

前景和背景线程

[英]Foreground and background threads

我是Stack Overflow的新手。 在这里查找了很多东西,但今天就签了名。 刚刚开始了多线程课程。

我在理解何时使用前台线程和后台线程时遇到了麻烦。 我对线程有点陌生。 它们之间的优缺点是什么? 设置属性时,我应该考虑什么?

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

关于何时使用前景线程以及何时使用后台线程,我能得到任何很好的例子吗?

我看到C#标准库默认将Thread类构造函数创建的线程设置为前台。 虽然ThreadPool默认情况下是背景。 这是什么原因呢? 他们为什么以这种方式编写库? (我知道属性可以更改,我只是想知道为什么默认情况下它们是这种方式)。

我不是.Net专家,但以下是有关背景属性的官方文档

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

对于线程池的情况,我们可以假设线程池仅管理子系统的“活动”,而其他“主”(前景)线程则用于管理更高级别(即系统)的“活动”。 随着系统级线程的存在,它可以防止进程停止。 尽管线程池任务通常不足以迫使进程继续运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM