2011-05-03 56 views
1

在Windows中尤其如此,如果事件是信號線程將退出。當事件發生時,這是什麼意思發信號如果一個事件發出信號,這是什麼意思?

+1

你可能會混淆一個Windows事件對象與POSIX信號的信號?那些是完全不同的東西。事件對象是線程間同步對象,與信號量不同,您可以通過同樣的方式獲取和釋放信號(「信號」)。沒有理由爲什麼線程應該退出。 – Damon 2011-05-03 08:35:34

+0

@ Damon,如果主線程死了,子線程會退出嗎? – gdb 2011-05-03 08:59:14

+0

我會回答「否」,但正確的答案是「是」。不要依賴這樣的事情發生。使其他線程以受控,定義的方式退出。信號線程並讓它們返回,不要殺死它們,等待線程退出,並清理已分配的內存。雖然這通常不是必需的,但無論如何都要這樣做。如果你有習慣於懶惰的方式,遲早你會發現自己處於調試噩夢,一旦遇到「無論如何工作」的假設不成立的情況。 – Damon 2011-05-03 09:07:00

回答

1

首先,您必須瞭解事件是什麼。 UI或程序化操作的任何性能都可以稱爲事件。例如,單擊鼠標按鈕或按下鍵盤按鍵等。

現在,發出事件表示發生此類事件。

+0

儘管技術上屬實,但OP正在討論[在Windows API中稱爲「事件」的同步原語(http://msdn.microsoft.com/zh-cn/library/ms682655.aspx),而不是事件驅動節目。 – 2011-05-03 09:13:42