我正在使用事件暂停线程。当发出eventSuspend信号时,线程会等待它。
// inside the thread function
WaitForSingleObject(eventSuspend, INFINITE );
现在我从外面设置它等待eventSuspend.ResetEvent()
但是线程函数内部的循环有点长(耗时)。我怎么知道线程已经完成了它正在做的任何事情,现在它确实在等待这个信号?
答案 0 :(得分:0)
你的问题是错的:等待的线程没有被暂停!
线程在调用SuspendThread()
后暂停,但在调用WaitForSingleObject()
后暂停。
只需在线程循环启动时设置BOOL标志,并在线程循环退出时重置标志,然后知道它是否运行。
如果你想了解一个线程的更多信息,比如它是否被填充,你可以使用我在这里发布的代码: How to get thread state (e.g. suspended), memory + CPU usage, start time, priority, etc