射击事件和睡眠线程
问题描述:
线程的阻塞是否也阻止从它发射的事件的发射和/或传播?射击事件和睡眠线程
澄清:
在一个线程我开火事件,并作为下一步我让线程入睡。问题是,如果发射 - 如果在即将睡眠声明前立即声明 - 是否由于排程问题而被阻止起火(即,该事件已经计划发射,但实际发射将发生在例如100毫秒内并且在这些发射之前已经通过ms的线程已经睡着了)。
// Pseudo-Code
event MyHandler TheEvent;
// ...
TheEvent();
threadWaitingSignal.Wait(); // block the thread
在上述情况下,我可以做出什么样的假设来解决事件发送和交付给用户?
答
所有听众将在睡眠前之前收到活动。事件被同步触发。
+0
非常感谢你的回答。 – 2012-07-21 16:33:57
触发一个事件是一个调用/返回。在事件调用全部返回之前,线程无法到达wait(),正如@Richard发布的那样。 – 2012-07-21 10:55:33