我需要loggingReady Queue中特定线程的时间和时间。 我想知道是否有一个程序化的方式来做到这一点与C#。 告诉我你是否需要更多信息
先谢谢了,Rotem Varon。
您可以检查Thread
对象的ThreadState
属性。
请参阅这里的possibile值: http : //msdn.microsoft.com/en-us/library/system.threading.threadstate.aspx
WaitSleepJoin
表示正在等待某事, Running
表示正在等待队列,据我所知。 希望有所帮助。
有关线程内核状态的信息在KTHREAD内核结构中可用,可通过内核模式下的线程块访问。
问题是如何在用户模式下展现它或将其展示给程序? 考虑到时间和技能,最好的解决办法可能是编写一个内核驱动程序。
或者你可以看看窗口性能计数器,这可能已经为你做了。 无论如何,你不得不求助于不精确的轮询(当线程改变状态时你不会得到通知)。
Win32_Thread WMI类可能对您有用,特别是ExecutionState
字段。