zoukankan      html  css  js  c++  java
  • 在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)
     
     
  • 相关阅读:
    MySQL官方文档-二级索引覆盖主键索引
    windows server 2008/win7 远程控制
    博客园美化日记
    MarkDown 中使用 LaTeX 数学式
    DOS命令和bat脚本
    数据链路层
    网络安全
    运输层安全协议SSL
    DNS/域名
    停止等待协议
  • 原文地址:https://www.cnblogs.com/chensong0524/p/14107206.html
Copyright © 2011-2022 走看看