C#如何获取一个指定进程的某个线程的状态

问题描述

在:1.已经能够获取到该进程的ID2.已经能够获取到该进程的指定线程的ID和句柄的条件下,怎么获取该线程的状态。状态就是System.Threading.ThreadState中的那10种中的任意一种,我想把它打印到一个listbox里。查了很多都是获取“当前”线程的状态,而不是“指定”线程的状态。

解决方案

解决方案二:
Process[]arr=Process.GetProcessesByName("QQ");if(null!=arr){Processpro=arr[0];foreach(ProcessThreadthreadinpro.Threads){Console.WriteLine(String.Format("ID:{0}StartTime:{1}ThreadState{2}",thread.Id,thread.StartTime,thread.ThreadState));}}
解决方案三:
if(null!=arr)改成if(null!=arr&&arr.Length>0)
解决方案四:
引用1楼songbing774933的回复:

Process[]arr=Process.GetProcessesByName("QQ");if(null!=arr){Processpro=arr[0];foreach(ProcessThreadthreadinpro.Threads){Console.WriteLine(String.Format("ID:{0}StartTime:{1}ThreadState{2}",thread.Id,thread.StartTime,thread.ThreadState));}}

谢谢你,但ProcessThread里的ThreadState只有8种状态,分别是://此状态指示线程已初始化但尚未启动。Initialized=0,//此状态指示线程因无可用的处理器而等待使用处理器。线程准备在下一个可用的处理器上运行。Ready=1,//此状态指示线程当前正在使用处理器。Running=2,//此状态指示线程将要使用处理器。一次只能有一个线程处于此状态。Standby=3,//此状态指示线程已完成执行并已退出。Terminated=4,//此状态指示线程尚未准备好使用处理器,因为它正在等待外围操作完成或等待资源释放。当线程就绪后,将对其进行重排Wait=5,//此状态指示线程在可以执行前等待处理器之外的资源。例如,它可能正在等待其执行堆栈从磁盘中分页。Transition=6,//线程的状态未知。Unknown=7而我想要的是System.Threading里的ThreadState那十种状态中的一种:
解决方案五:
在1#的基础上,用ThreadState再结合thread.WaitReason就可以了,而且更细致
解决方案六:
.net中的线程被称之为托管线程,不等于Windows中线程。

时间: 2024-10-25 10:40:37

C#如何获取一个指定进程的某个线程的状态的相关文章

怎么用Cacti监测Linux的服务器的一个指定进程?

问题描述 怎么用Cacti监测Linux的服务器的一个指定进程? 解决方案 解决方案二:之前我也不懂,后来经朋友介绍,一款名叫美信CreCloud云网管的软件,这是一款全中文的服务器监控软件,安装.使用非常简单.监测进程只要简单配置就可以实现.并且是全球第一套引入"云计算"的网管软件,我觉得很好用,特此推荐一下,而且是免费的呢!http://www.mxsoft.com

c++写一个循环来查找指定进程 不知道该怎么写?求代码

问题描述 c++写一个循环来查找指定进程 不知道该怎么写?求代码 c++写一个循环来查找指定进程 不知道该怎么写?求代码 网上找了不少资料单老是编译出错 求大神指点 解决方案 用CreateToolhelp32Snapshot 参考:http://blog.csdn.net/zhongbin104/article/details/7867309 解决方案二: BOOL FindProcessByName(LPCTSTR szFileName, PROCESSENTRY32& pe) { // 采

delphi-Delphi获取指定进程指定模块问题

问题描述 Delphi获取指定进程指定模块问题 请问Delphi如何获取指定进程的指定模块(例如dll文件),然后通过writeprocess来写入数据?感谢了. 解决方案 http://blog.csdn.net/tiandyoin/article/details/38640217delphi的做法类似

编程- 悬赏20c币 vb用file控件获取一个文件并复制到指定文件夹

问题描述 悬赏20c币 vb用file控件获取一个文件并复制到指定文件夹 如题,用户使用时选取一个文件,然后自动复制到另一个已经指定好的文件夹,谢谢答的好的20c币 解决方案 求大神,求大神,谢谢谢谢谢 解决方案二: 用户选择好文件之后,点击确定,你在确定按钮的事件函数里使用filecopy函数直接复制文件http://baike.baidu.com/link?url=p0S_bFcHsJ1q8tk-CFCiaSGTak_K9xL0ZfjeEfmHM5K1PYrs9x0YwdI9cEvVFmfO

软件-C# 如何实现当一个指定的进程(非本身)结束后, 同时也结束掉自己的进程(本身)!

问题描述 C# 如何实现当一个指定的进程(非本身)结束后, 同时也结束掉自己的进程(本身)! 举例. 现在我同时打开了 软件A, 软件B, 软件A 是已经做好的软件或是游戏~ 不是我自己编写的. 软件B 是我自己现在要做的软件~ 如何实现 在两个软件同时打开的情况下, 关闭掉软件A, 那么软件B也会自动关闭. 关闭掉软件B, 强制结束掉软件A的进程! 解决方案 所谓的B自动关闭,其实就是B执行结束.因此来说,在B中只要判断A是否存活.A若存活,则继续执行.A若不存活,则结束程序,即可. 建议由B

如何获取、截取、修改指定进程中网络传送的MAC,IP等信息呢?

问题描述 如何获取.截取.修改指定进程中网络传送的MAC,IP等信息呢?用什么API?函数?方法? 解决方案 解决方案二:你这个要求不是arp攻击吗?攻击代码没有.检测的工具到是有http://www.lob.cn/jq/skill/578.shtml解决方案三:想一夜暴富的小年轻,请到蓝翔技校计算机报名啊.他们据说都能检测到美国白宫的各种机器的MAC呢.解决方案四:我们只能为了从事"行业软件开发"的正规程序员的交流做努力.如果存在一种病毒思维,那么绝不会把他那到正规论坛讨论的,这只能

使用nagios脚本检查指定进程内存使用情况

由于近来线上环境的某些进程总是内存溢出,所以需要添加一下对于某些进程的内存使用情况监控,搜到的别人的脚本大都不太满意,于是自己写了个,代码如下: #!/bin/bash HELP(){ echo " Usage: $0 -p /var/run/pidfile -w used% -c used%" echo " Exam: $0 -p /var/run/pidfile -w 85 -c 90" exit 3 } OK=0 ; WA=1 ; CR=2 ;UN=3 ; W

快照-vc++编写查找指定进程的程序

问题描述 vc++编写查找指定进程的程序 百度了几个大同小异的例子 编译后出现了一堆错误 求大神指点 以下是其中一个例子BOOL FindProcessByName(LPCTSTR szFileName, PROCESSENTRY32& pe) { // 采用进程快照枚举进程的方法查找指定名称进程 HANDLE hProcesses; PROCESSENTRY32 lpe = { sizeof(PROCESSENTRY32) }; CString strFileName(szFileName);

请问如何对指定进程的指定地址段开启读写权限?

问题描述 比如上面我通过OD查询一个进程时,我想对地址:778141DA到778141EA这段地址中开启读写权限,请问大侠们如何用C#写啊:====我用的API是下面的类publicabstractclassHelper{constintPROCESS_ALL_ACCESS=0x1F0FFF;constintPROCESS_VM_READ=0x0010;constintPROCESS_VM_WRITE=0x0020;publicstringprocessName="进程名r";publ