如何检查线程是否在等待?

为了进行分析和监控,我想知道一个线程当前是处于活动状态(使用CPU时间),还是等待或睡眠。

有没有办法找出一个线程当前是否在各种Windows内核等待函数之一中?

从WaitForSingleObject到各种互斥锁,睡眠,关键部分,IOCP GetQueuedCompletionStatus和其他I / O函数等,都有相当多的函数可以导致线程等待。

有一个标准的方法来知道一个线程是否在等待?

Wait Chain Traversal API可以完成你所要求的功能。 而且还有更多。