zoukankan      html  css  js  c++  java
  • 在C#中怎样推断线程当前所处的状态

    在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)
  • 相关阅读:
    题解 CF1156A 【Inscribed Figures】
    P1352 没有上司的舞会 题解
    厦门大学附属实验中学第五次OI模拟赛(XDFZOI5)比赛须知
    属于自己的期中考总结
    做题笔记 【模板】字符串哈希
    2018 总结
    做题笔记 图的遍历 P3916
    做题笔记 Splitting into digits CF1104A
    LIS (nlogn)
    标准正交基
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7225774.html
Copyright © 2011-2022 走看看