概述
C#的线程包括以下几种状态:
成员名称 | 说明 |
Aborted | 线程处于 Stopped 状态中。 |
AbortRequested | 已对线程调用了 Thread.Abort 方法,但线程尚未收到试图终止它的挂起的 System.Threading.ThreadAbortException。 |
Background | 线程正作为后台线程执行(相对于前台线程而言)。此状态可以通过设置 Thread.IsBackground 属性来控制。 |
Running | 线程已启动,它未被阻塞,并且没有挂起的 ThreadAbortException。 |
Stopped | 线程已停止。 |
StopRequested | 正在请求线程停止。这仅用于内部。 |
Suspended | 线程已挂起。 |
SuspendRequested | 正在请求线程挂起。 |
Unstarted | 尚未对线程调用 Thread.Start 方法。 |
WaitSleepJoin | 由于调用 Wait、Sleep 或 Join,线程已被阻止。 |
ThreadState 为线程定义了一组所有可能的执行状态。一旦线程被创建,它就至少处于其中一个状态中,直到终止。在公共语言运行库中创建的线程最初处于 Unstarted 状态中,而进入运行库的外部线程则已经处于 Running 状态中。通过调用 Start 可以将 Unstarted 线程转换为 Running 状态。并非所有的 ThreadState 值的组合都是有效的;例如,线程不能同时处于 Aborted 和 Unstarted 状态中。
下表显示了导致状态更改的操作。
操作 | ThreadState |
在公共语言运行库中创建线程。 | Unstarted |
线程调用 Start | Unstarted |
线程开始运行。 | Running |
线程调用 Sleep | WaitSleepJoin |
线程对其他对象调用 Wait。 | WaitSleepJoin |
线程对其他线程调用 Join。 | WaitSleepJoin |
另一个线程调用 Interrupt | Running |
另一个线程调用 Suspend | SuspendRequested |
线程响应 Suspend 请求。 | Suspended |
另一个线程调用 Resume | Running |
另一个线程调用 Abort | AbortRequested |
线程响应 Abort 请求。 | Stopped |
线程被终止。 | Stopped |
最后
以上就是完美哈密瓜为你收集整理的.NET多线程技术详解(3) 线程状态的全部内容,希望文章能够帮你解决.NET多线程技术详解(3) 线程状态所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复