什么是后台、前台和主线程?

9

背景线程、前台线程和主线程有什么区别?.NET中有哪些不同类型的线程?

3个回答

8

一个后台线程(其Thread对象的Background属性设置为true)不会阻止应用程序退出。

一旦所有正常(前台)线程退出,任何正在运行的后台线程都会立即终止。此外,如果卸载了AppDomain,则AppDomain中的所有后台线程都会立即中止。

ThreadPool管理的线程是后台线程。

前台线程是普通线程。

主线程是启动程序的初始线程。(运行Main方法的线程)

有关更多信息,请参见这里


有的,阅读链接。默认限制是每个 CPU 250 个;您可以通过调用 ThreadPool.SetMaxThreads 来更改它。 - SLaks
1
我可能错了,但我认为限制是按核心计算的。另外,你的应用程序很少需要那么多线程。你所要做的就是增加线程开销。根据经验,每个核心使用2/3个线程似乎是一个不错的选择。 - Sylvestre Equy

5

0
一个后台线程就是这样,它是在应用程序的UI线程后台运行的线程。在像WinForms应用程序中,UI线程负责重新绘制UI和其他用户交互。
将长时间运行的进程移至后台线程将有助于提高可用性。这里有一份关于线程的好intro document供您参考。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接