我有一个自动重置事件对象,有一个线程正在等待它。如果现在我调用SetEvent,可以保证在SetEvent返回时事件对象是无信号的吗?
我有两个以A-B-A-B -...方式运行的线程。一旦A唤醒B,A将开始等待B.如果我可以在发出信号之后立即等待同一事件对象,那么......我可以保存一个事件对象。
如果你问为什么我不只是使用一个单独的线程,它们就处于不同的过程中。
答案 0 :(得分:4)
当服务员被释放时,事件变得无信号。在调用SetEvent
之前,无法保证释放服务员。
答案 1 :(得分:0)
一般来说,没有。到那时,另一个线程可能已经发出信号,如果没有线程等待,它将保持设置状态。在只有两个线程的情况下,那么也许你会好的。
为什么你甚至会考虑这种“优化”。使用两个事件将更容易调试。
多线程,线程间和进程间通信很难实现。你不应该添加更多的复杂功能。