2012-07-21 103 views
0

線程的阻塞是否也阻止從它發射的事件的發射和/或傳播?射擊事件和睡眠線程

澄清:

在一個線程我開火事件,並作爲下一步我讓線程入睡。問題是,如果發射 - 如果在即將睡眠聲明前立即聲明 - 是否由於排程問題而被阻止起火(即,該事件已經計劃發射,但實際發射將發生在例如100毫秒內並且在這些發射之前已經通過ms的線程已經睡着了)。

// Pseudo-Code 

event MyHandler TheEvent; 

// ... 

TheEvent(); 
threadWaitingSignal.Wait(); // block the thread 

在上述情況下,我可以做出什麼樣的假設來解決事件發送和交付給用戶?

+1

觸發一個事件是一個調用/返回。在事件調用全部返回之前,線程無法到達wait(),正如@Richard發佈的那樣。 – 2012-07-21 10:55:33

回答

4

所有聽衆將在睡眠前之前收到活動。事件被同步觸發。

+0

非常感謝你的回答。 – 2012-07-21 16:33:57