首页 > 编程语言 > 详细

在C#中怎样推断线程当前所处的状态

时间:2017-07-23 20:51:30      阅读:272      评论:0      收藏:0      [点我收藏+]
在C#中怎样推断线程当前所处的状态
                                        老帅
   
   在C#中。线程对象Thread使用ThreadState属性指示线程状态。它是带Flags特性的枚举类型对象。

   ThreadState 为线程定义了一组全部可能的执行状态。一旦线程被创建。它就至少处于当中一个状态中。直到终止。

在公共语言执行时中创建的线程最初处于Unstarted状态中。而进入执行时的外部线程则已经处于Running状态中。

通过调用 Start能够将Unstarted线程转换为Running状态。并不是全部的ThreadState值的组合都是有效的;比如,线程不能同一时候处于Aborted和Unstarted状态中。

   因此推断线程当前的状态必须用bitmask按位运算来达到推断目的,不能直接使用相等来推断。

   定义ThreadState例如以下:  
   技术分享
   
   1.推断线程是否处于取消状态
   A.错误的推断
    (MyThread.ThreadState == ThreadState.AbortRequested)   
   B.正确的推断
    (MyThread.ThreadState & ThreadState.AbortRequested) != 0

   2.推断线程是否处于执行状态   
   这个有一点特殊。由于ThreadState.Running本身等于0。不能用&运算,所以推断可用下面方法:
   (MyThread.ThreadState == ThreadState.Running)

在C#中怎样推断线程当前所处的状态

原文:http://www.cnblogs.com/lytwajue/p/7225774.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!