我正在使用事件暂停线程。当 eventSuspend 发出信号时,线程会等待它。
// inside the thread function
WaitForSingleObject(eventSuspend, INFINITE );
现在从外面我将它设置为等待,eventSuspend.ResetEvent()
但线程函数内的循环有点长(耗时)。我怎么知道线程已经完成了它正在做的事情,现在它确实在等待这个信号?
我正在使用事件暂停线程。当 eventSuspend 发出信号时,线程会等待它。
// inside the thread function
WaitForSingleObject(eventSuspend, INFINITE );
现在从外面我将它设置为等待,eventSuspend.ResetEvent()
但线程函数内的循环有点长(耗时)。我怎么知道线程已经完成了它正在做的事情,现在它确实在等待这个信号?
你的问题是错误的:正在等待的线程没有被挂起!
线程在调用后挂起,SuspendThread()
但不是在调用后挂起WaitForSingleObject()
。
只需在线程循环开始时设置一个 BOOL 标志,并在线程循环退出时重置标志,然后您就知道它是否运行。
如果您想了解有关线程的更多信息,例如是否暂停,您可以使用我在此处发布的代码: 如何获取线程状态(例如暂停)、内存 + CPU 使用情况、开始时间、优先级等