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

前端之家收集整理的这篇文章主要介绍了Windows – 检查Win32线程是否正在运行或处于挂起状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何查看Win32线程是正在运行还是处于挂起状态?

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

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

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

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

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

原文链接:/windows/371381.html

猜你在找的Windows相关文章