线程状态及其转换

线程对象使用ThreadState.属性指示线程状态。

ThreadState是带flag特性的枚举类型对象,因此判断线程当前的状态必须用bitmask,作为一个特例,由于Running状态的bit码是0,因此,需要用如下方式判断线程是否处于运行状态:(myThread.ThreadState & (ThreadState.Stopped | ThreadState.Unstarted)) == 0

枚举成员如下:

 Member nameDescription
 RunningThe thread has been started, it is not blocked, and there is no pendingThreadAbortException.
 StopRequestedThe thread is being requested to stop. This is for internal use only.
 SuspendRequestedThe thread is being requested to suspend.
 BackgroundThe thread is being executed as a background thread, as opposed to a foreground thread. This state is controlled by setting theThread.IsBackground property.
 UnstartedThe Thread.Start method has not been invoked on the thread.
 StoppedThe thread has stopped.
 WaitSleepJoinThe thread is blocked. This could be the result of calling Thread.Sleep orThread.Join, of requesting a lock — for example, by callingMonitor.Enter orMonitor.Wait — or of waiting on a thread synchronization object such asManualResetEvent.
 SuspendedThe thread has been suspended.
 AbortRequestedThe Thread.Abort method has been invoked on the thread, but the thread has not yet received the pendingSystem.Threading.ThreadAbortException that will attempt to terminate it.
 AbortedThe thread state includes AbortRequested and the thread is now dead, but its state has not yet changed toStopped.

状态转换图如下“



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值