博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在C#中怎样推断线程当前所处的状态
阅读量:4634 次
发布时间:2019-06-09

本文共 666 字,大约阅读时间需要 2 分钟。

在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)

转载于:https://www.cnblogs.com/lytwajue/p/7225774.html

你可能感兴趣的文章
我的一亩三分地
查看>>
Java线程和多线程(三)——线程安全和同步
查看>>
武汉小猫科技-工作总结(1):一图胜万言
查看>>
python-冒泡排序
查看>>
斯坦福机器学习视频笔记 Week9 异常检测和高斯混合模型 Anomaly Detection
查看>>
vscode 插件
查看>>
angular 新建组件
查看>>
Python全栈之路系列之面向对象特殊成员
查看>>
Lpms-B2 IMU数据采源码分析 及 TCP/IP握手简单分析
查看>>
Silverlight——ListBox学习笔记
查看>>
JQUERY1.6 方法4 检测浏览器
查看>>
LINUX系统GIT使用教程
查看>>
shell /dev/null
查看>>
docker 镜像
查看>>
OAuth 2.0攻击面与案例总结
查看>>
centos7grub2 引导win10
查看>>
基于DCMTK的DICOM相关程序编写攻略
查看>>
win7下的IP-主机名映射
查看>>
Alpha版本项目展示
查看>>
朴素贝叶斯知识点概括
查看>>