Windows – 检查Win32线程是否正在运行或处于挂起状态

如何查看Win32线程是正在运行还是处于挂起状态?

我找不到任何给出线程状态的Win32 API.那么如何获得线程状态?

我认为 – 原来 – 这个信息没有提供,因为提供这个信息的任何API会是误导和无用的.

考虑两种可能的情况 – 当前线程已暂停线程的兴趣.当前线程中的代码了解挂起的状态,并且应该能够共享它,以便内核团队不需要添加一个API.

第二种情况,系统中的一些其他/第三个线程已经暂停了兴趣线程(没有办法跟踪哪个线程).现在你有一个竞争条件 – 其他线程可以在任何时候 – 暂停线程的兴趣和从API收集的信息是无用的 – 你有一个值,表示线程被暂停,而事实上,而不是.

道德的故事 – 如果你想知道一个线程被暂停 – 挂起它:从SuspendThread的返回值是线程的以前的暂停计数.现在你知道一些有用的东西 – 线程暂停 – 这是有用的.或者它不是(但现在是)暂停.无论哪种方式,线程的状态现在都是确定性的,所以你可以在理论上做出一些基于这一点的智能选择 – 无论是ResumeThread还是暂停.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...