Chr*_*cke 15
我认为 - 最初 - 没有提供此信息,因为提供此信息的任何API都会产生误导和无效.
考虑两种可能的情况 - 当前线程已暂停感兴趣的线程.当前线程中的代码知道挂起状态,并且应该能够共享它,因此内核团队无需添加API.
第二种情况,系统中的其他一些/第三个线程已经暂停了感兴趣的线程(并且无法跟踪哪个线程).现在你有一个竞争条件 - 其他线程可以在任何时候 - 取消挂起感兴趣的线程,并且从API中收集的信息是无用的 - 你有一个值,表明线程实际上是暂停的,而不是.
故事的道德 - 如果你想知道线程被挂起 - 暂停它:SuspendThread的返回值是线程的先前挂起计数.而现在你知道一些有用的东西 - 线程仍然悬而未决 - 这很有用.或者它没有(但现在是)被暂停.无论哪种方式,线程的状态现在都是确定性已知的,因此理论上您可以基于此做出一些明智的选择 - 无论是ResumeThread,还是保持暂停状态.