如何知道线程处于挂起状态

时间:2013-10-25 21:18:36

标签: c++ windows multithreading mfc

我正在使用事件暂停线程。当发出eventSuspend信号时,线程会等待它。

// inside the thread function
WaitForSingleObject(eventSuspend, INFINITE );

现在我从外面设置它等待eventSuspend.ResetEvent()但是线程函数内部的循环有点长(耗时)。我怎么知道线程已经完成了它正在做的任何事情,现在它确实在等待这个信号?

1 个答案:

答案 0 :(得分:0)

你的问题是错的:等待的线程没有被暂停!

线程在调用SuspendThread()后暂停,但在调用WaitForSingleObject()后暂停。

只需在线程循环启动时设置BOOL标志,并在线程循环退出时重置标志,然后知道它是否运行。

如果你想了解一个线程的更多信息,比如它是否被填充,你可以使用我在这里发布的代码: How to get thread state (e.g. suspended), memory + CPU usage, start time, priority, etc