你的位置:首页 > 软件开发 > ASP.net > C#多线程实践——线程状态

C#多线程实践——线程状态

发布时间:2015-05-22 00:00:03
线程状态关系图  在.NET Framework中,可以通过ThreadState属性获取线程的执行状态。上图标识出三种状态“层”,ThreadState以按位计算的方式组合状态层,每种状态层的成员之间都是互斥的,下面是所有的三种状态&am ...

get='_blank'>线程状态关系图

C#多线程实践——线程状态

  在.NET Framework中,可以通过ThreadState属性获取线程的执行状态。上图标识出三种状态“层”,ThreadState以按位计算的方式组合状态层,每种状态层的成员之间都是互斥的,下面是所有的三种状态“层”:

  • 运行 (running) / 阻止 (blocking) / 终止 (aborting) 状态(上图显示)
  • 后台 (background) / 前台 (foreground) 状态 (ThreadState.Background)
  • 不建议使用的Suspend 方法(ThreadState.SuspendRequested 和 ThreadState.Suspended)挂起的过程

        总的来说,ThreadState是按位组合零或每个状态层的成员!一个简单的ThreadState示例如下:

Unstarted

Running

WaitSleepJoin

Background, Unstarted

SuspendRequested, Background, WaitSleepJoin

     这些枚举的成员中StopRequested 和 Aborted两个从来没被用过,至少当前CLR实现上每月使用过。

     另外,ThreadState.Running潜在的值为0 ,因此代码不会被执行:

if ((t.ThreadState & ThreadState.Running) > 0) ...

原标题:C#多线程实践——线程状态

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录