我是靠谱客的博主 完美哈密瓜,最近开发中收集的这篇文章主要介绍.NET多线程技术详解(3) 线程状态,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C#的线程包括以下几种状态:

成员名称

说明

Aborted

线程处于 Stopped 状态中。 

AbortRequested

已对线程调用了 Thread.Abort 方法,但线程尚未收到试图终止它的挂起的 System.Threading.ThreadAbortException 

Background

线程正作为后台线程执行(相对于前台线程而言)。此状态可以通过设置 Thread.IsBackground 属性来控制。 

Running

线程已启动,它未被阻塞,并且没有挂起的 ThreadAbortException 

Stopped

线程已停止。 

StopRequested

正在请求线程停止。这仅用于内部。 

Suspended

线程已挂起。 

SuspendRequested

正在请求线程挂起。 

Unstarted

尚未对线程调用 Thread.Start 方法。 

WaitSleepJoin

由于调用 WaitSleep 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) 线程状态所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部