这篇文章将在上篇文章的基础上,进一步讲解线程的相关知识。这篇文章涉及到的知识点有 线程优先级、前台与后台线程、线程参数、lock、Monitor 和 线程异常处理 。这篇要比上一篇难度有一点提高,但是大家不用担心,我依然会用大量的代码来展示每个知识点,并且对于其中的难点我会详细讲解。下面我们就开始学习基础知识的第二篇。
一、线程优先级
.NET 给我们定义了多种线程优先级,它们都位于 ThreadPriority 中,分别是: Lowest 、BelowNormal 、 Normal 、 AboveNormal 和 Highest 。它们的优先级和说明如下表所示:
优先级 | 说明 |
---|---|
Lowest | 最低的优先级 |
BelowNormal | 位于 Normal 优先级之后 |
Normal | 默认优先级,所有线程都具备的优先级 |
AboveNormal | 位于 Highest 优先级之后 |
Highest | 最高的优先级 |
在普通的情况下,如果优先级高的线程在运行,就不会给优先级低的线程分配任何 CPU 时间,这样就可以保证重要/主要线程具有较高的优先级。在大多数的