【发布时间】:2021-08-23 19:57:34
【问题描述】:
我是 Stack Overflow 的新手。在这里查找了很多东西,但今天注册了。刚开始学习多线程课程。
我无法理解何时使用前台和后台线程。我对线程有点陌生。它们之间的优缺点是什么?设置属性时应该考虑什么?
对我来说,使用后台似乎很方便,因为这意味着我不必在关闭应用程序期间处理线程,对吧?我的老师告诉我,大部分时间都使用前台线程,但至少没有以我理解的方式解释原因。
我能得到任何关于什么时候使用前台线程和什么时候使用后台线程的好例子吗?
我看到 C# 标准库默认将 Thread 类构造函数创建的线程设置为前台。而 ThreadPool 默认为背景。这是什么原因?他们为什么要这样写库? (我知道属性是可以更改的,我只是想知道它们为什么默认是这样的)。
【问题讨论】:
-
它非常很少。它只是帮助 CLR 弄清楚当你的程序的主线程结束时它需要做什么。它查看其他正在运行的线程,如果其中一个线程具有 Background = false ,那么它会保持您的程序运行。直到一个都没有了。就这样。当您不关心线程被粗鲁地中止时,您使用 Background = true ,因为它没有做其他线程可能关心的任何重要事情。比如说,一个运行 dbase 查询以更新 UI 的工作线程。没有更多的 UI 线程 => 你不在乎。
-
正是我想确定的。谢谢。
标签: c# multithreading