2012-06-26 55 views
0

我創建了一個繼承自.NET的ApplicationContext的類,我想知道哪裏最好提高我的OnClosing事件。現在,ApplicationContext有一個「ThreadExit」事件,但是在ExitThread和ExitThreadCore都運行後,這個事件就會觸發。這是典型的OnClosing事件會發生的地方嗎?這看起來更像是OnClosed事件發生的地方。哪裏OnClosing活動通常從?

作爲跟進,我的OnClosed事件應該放在哪裏?重寫Dispose並把它放在開頭看起來似乎是合理的我想。 Dispose的結束會安全嗎?或者OnClosed甚至可能需要剛刪除的東西?

編輯: 所以它看起來像我不得不使用從ApplicationContext中繼承了ThreadExit事件。我現在的問題是,從這裏取消閉幕是否安全?還有,我應該從哪裏開啓我的OnClosed?

+0

很難理解這一點,ApplicationContext類模擬了UI線程的狀態。只要有一個活動,UI線程正在泵送消息循環。 OnClosing毫無意義,當沒有窗戶時沒有意義取消它,在最後一個窗戶消失後沒有什麼會發生。 ThreadExit已經發出線程結束的信號。也許是ThreadExiting,但是你要做什麼呢?它跟緊接着它的ThreadExit有什麼不同。 –

+0

這是假設你有窗戶。我的班級在關閉時可能不會使用任何窗口。它是一個正在模擬從系統托盤運行的應用程序的類。 – user912447

+0

ThreadExit的工作方式類似於OnFormClosing與Forms應用程序嗎?如果我可以使用它,而不是創建一個新的,但我不是那個名字的粉絲。 – user912447

回答

0

我會去使用ThreadExit事件,但我不喜歡那個名字。但我仍然想知道放置OnClosed事件的最佳場所。