tec*_*amp 1 c++ winapi multithreading synchronization visual-c++
WaitForSingleObject(handle, timeout);
如果句子在调用之前已经发出信号,我会这样做WaitForSingleObject,函数会返回什么?
我认为它应该立即返回WAIT_OBJECT_0...但在我的情况下,它等待事件被设置,因为没有发生(事件已经设置),它超时.
请指教.
取决于事件.您对手动重置事件的期望是正确的,并且自动重置事件不会保持信号状态:事件对象(Windows).
自动重置事件一个事件对象,其状态保持信号状态,直到释放单个等待线程,此时系统自动将状态设置为无信号状态.
如果没有线程在等待,则事件对象的状态仍然发出信号.如果有多个线程在等待,则选择等待线程.不要假设先进先出(FIFO)顺序.内核模式APC等外部事件可以更改等待顺序.
| 归档时间: |
|
| 查看次数: |
6219 次 |
| 最近记录: |