0

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

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

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

4

1 回答 1

0

你的问题是错误的:正在等待的线程没有被挂起!

线程在调用后挂起,SuspendThread()但不是在调用后挂起WaitForSingleObject()

只需在线程循环开始时设置一个 BOOL 标志,并在线程循环退出时重置标志,然后您就知道它是否运行。

如果您想了解有关线程的更多信息,例如是否暂停,您可以使用我在此处发布的代码: 如何获取线程状态(例如暂停)、内存 + CPU 使用情况、开始时间、优先级等

于 2014-04-08T23:07:50.820 回答