Thread对象的生存期特征由一组状态描述。Thread对象的ThreadState属性将返回下列10个数值中的一个:

  • Unstarted  线程尚未开始
  • Running   线程正则执行
  • Background  线程正在后台执行
  • WaitSleepJoin  线程由于调用Wait、Sleep或Join方法而被阻塞
  • SuspendRequested  线程对象位于当前挂起的进程中
  • Suspended  线程对象已经停止
  • StopRequested  线程对象位于当前停止的进程中
  • Stopped  线程对象已经停止
  • AbortRequested  Abort方位已被调用,但是线程对象尚未收到ThreadAbortException
  • Aborted  线程对象被异常终止

Thread对象可以在某一时刻处于多种状态。例如,某个正在等待资源的Thread对象,如果在它等待时调用了Abort方法,那么该线程对象可能同时处于WaitSleepJoin和AbortRequested状态。

1 /*
2 Example14_3.cs illustrates the ThreadState property
3 */
4
5 using System;
6 using System.Threading;
7
8 class Example14_3
9 {
10
11 // the Countdown method counts down from 10 to 1
12 public static void Countdown()
13 {
14 for (int counter = 10; counter > 0; counter--)
15 {
16 Console.Write(counter.ToString() + " ");
17 }
18 Console.WriteLine();
19 }
20
21 // the DumpThreadState method displays the current Thread's state
22 // Note that ThreadState is a bitmask, and multiple states for the
23 // same thread are valid
24 public static void DumpThreadState (
25 Thread t
26 )
27 {
28 Console.Write("Current state: ");
29 if ((t.ThreadState & ThreadState.Aborted) == ThreadState.Aborted)
30 Console.Write("Aborted ");
31 if ((t.ThreadState & ThreadState.AbortRequested) ==
32 ThreadState.AbortRequested)
33 Console.Write("AbortRequested ");
34 if ((t.ThreadState & ThreadState.Background) ==
35 ThreadState.Background)
36 Console.Write("Background ");
37 if ((t.ThreadState &
38 (ThreadState.Stopped | ThreadState.Unstarted |
39 ThreadState.Aborted)) == 0)
40 Console.Write("Running ");
41 if ((t.ThreadState & ThreadState.Stopped) == ThreadState.Stopped)
42 Console.Write("Stopped ");
43 if ((t.ThreadState & ThreadState.StopRequested) ==
44 ThreadState.StopRequested)
45 Console.Write("StopRequested ");
46 if ((t.ThreadState & ThreadState.Suspended) ==
47 ThreadState.Suspended)
48 Console.Write("Suspended ");
49 if ((t.ThreadState & ThreadState.SuspendRequested) ==
50 ThreadState.SuspendRequested)
51 Console.Write("SuspendRequested ");
52 if ((t.ThreadState & ThreadState.Unstarted) ==
53 ThreadState.Unstarted)
54 Console.Write("Unstarted ");
55 if ((t.ThreadState & ThreadState.WaitSleepJoin) ==
56 ThreadState.WaitSleepJoin)
57 Console.Write("WaitSleepJoin ");
58 Console.WriteLine();
59 }
60
61 public static void Main()
62 {
63
64 // create a second thread
65 Thread t2 = new Thread(new ThreadStart(Countdown));
66 DumpThreadState(t2);
67
68 // launch the second thread
69 t2.Start();
70 DumpThreadState(t2);
71
72 // and meanwhile call the Countdown method from the first thread
73 Countdown();
74
75 // shut down the second thread
76 t2.Abort();
77 DumpThreadState(t2);
78
79 }
80
81 }

转载于:https://www.cnblogs.com/djcsch2001/archive/2011/05/10/2042456.html

C#--检索线程状态相关推荐

  1. python 判断线程状态_Python线程指南

    Python线程指南 本文介绍了Python对于线程的支持,包括"学会"多线程编程需要掌握的基础以及Python两个线程标准库的完整介绍及使用示例. 注意:本文基于Python2. ...

  2. java线程池返回线程状态_Java线程的不同状态

    java线程池返回线程状态 介绍 在Java中,线程可以具有状态. Thread.State枚举定义Java线程可以具有的不同状态. 该枚举定义了以下值– 新 可运行 已封锁 等候 TIMED_WAI ...

  3. python线程状态_Python线程

    1. 线程基础 1.1. 线程状态 线程有5种状态,状态转换的过程如下图所示: 1.2. 线程同步(锁) 多线程的优势在于可以同时运行多个任务(至少感觉起来是这样).但是当线程需要共享数据时,可能存在 ...

  4. MySQL线程状态详解

    文章目录 一.show processlist 二.command命令类型 三.用户线程状态 四.dump线程状态 五.IO线程状态 六.SQL 线程状态 七. 主从连接线程状态 八.事件调度线程状态 ...

  5. 面试必备,Java线程状态之细节回顾

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 来源:https://dwz.cn/vYqjShos Java线程有6种状态 在某个给定时间点 ...

  6. Java 线程状态之 WAITING

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇里我们讲了一个重要状态:BLOCKED,在这一篇章里,我们来看另一个重要的状态:WAITING(等待). 定义 一个正 ...

  7. 将线程pid转成16进制_如何使用jstack分析线程状态

    背景 记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高 ...

  8. Java并发编程之线程状态总结

    线程状态 新创建(NEW):新创建了一个线程对象,但还没有调用start()方法,如new Thread(r). 可运行(RUNNABLE):调用start方法,线程处于runnable状态. 阻塞( ...

  9. 每个java程序都至少有一个线程给主线程,java程序在主线程中判断各个子线程状态的操作,该如何解决...

    java程序在主线程中判断各个子线程状态的操作 每个子线程在队列为空时会wait等待其他线程添加新url到队列,到最后所有子线程都取不到url时也会都wait住,要在主线程中判断如果所有的子线程都是w ...

最新文章

  1. Struts2中导入外部xml文件出现Included file cannot be found错误!
  2. xms跨平台基础框架 - 基于.netcore
  3. xshell 常用配置_Xshell连接报Connection closed by foreign host错误的解决办法
  4. Linux automake命令
  5. Zookeeper全解析——Client端
  6. 添加Centos缺失的命令
  7. 数据库实体表的关系学习
  8. day25-静态、组合、继承
  9. 勤哲excel服务器端口协议,勤哲EXCEL服务器2017版工作流定义方式及无限制版本非高低配单服务器版,不绑定服务...
  10. 最经典的10部爱情小说
  11. linux音频设备接口,OSS--跨平台的音频接口简介
  12. 【初级篇】网页引入live2d
  13. Jaca 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
  14. 3.JDBC基础代码书写
  15. Open judge 1.8.3
  16. 难以置信,已经有人用 ChatGPT 做 Excel 报表了?
  17. 苹果电池显示维修_安装第三方电池的iPhone也可享受苹果官方维修
  18. 加速度传感器灵敏度的几种表示方式
  19. 代码编辑软件Sublime Text 4中文版安装使用教程
  20. 北信源华为鸿蒙概念,A股华为鸿蒙概念板块的股票有哪些

热门文章

  1. 企业级的开发组件02 - DevExpress DXperience Universal 2011.2.5 Final
  2. Delphi 与 DirectX 之 DelphiX(95): TDIB.x
  3. javascript运行时问题
  4. css3属性box-sizing:border-box 用法解析
  5. Ubuntu+Apache+PHP+Mysql环境搭建
  6. 我要再接再力 学更多
  7. 【原创】源智工作流聚合步骤模型
  8. websphere7 linux 命令行安装(静默安装)
  9. 关于Redis的数据迁移(三种方法)
  10. windows核心编程-第二章 Unicode