有沒有辦法訂閱這個事件或類似的東西,所以我可以在對象完成之前執行一些清理代碼?如何從庫程序集訂閱Application.ApplicationExit
0
A
回答
1
您以與任何事件相同的方式訂閱此活動。
的ApplicationExit MSDN頁面上的例子是明確的:
Application.ApplicationExit += new EventHandler(this.OnApplicationExit);
private void OnApplicationExit(object sender, EventArgs e) {
// do your cleanups
}
3
事件是靜態的,所以使用它在一個DLL不會引起任何問題。
但要小心,如果您的類庫實際上是從Winforms應用程序使用的,則只會觸發該事件。如果您公開的功能僅適用於Winforms應用程序,那麼您只能確定這一點。就像自定義控件或UserControl一樣。
替代方案是AppDomain事件,DomainUnload和ProcessExit。或者只是期待主應用程序讓你知道關機。這通常是更好的選擇,你不一定知道爲什麼該應用程序正在退出。例如,您不希望在硬崩潰時保存設置。注意ApplicationSettingsBase類也遵循這種模式,你必須明確地調用它的Save()方法。
相關問題
- 1. 訂閱裝入程序集的事件
- 2. 如何集成在應用程序結算訂閱
- 3. iOS應用程序訂閱 - 按月訂閱每年訂閱?
- 4. 如何訂閱應用程序關閉事件類庫
- 5. 如何取消訂閱AngularFire數據庫觀察/訂閱?
- 6. 訂閱大集合
- 7. Paypal訂閱集成
- 8. 如何從頁面取消訂閱Facebook Chatbot應用程序?
- 9. 訂閱應用程序
- 10. 如何訂閱Meteor的發佈集?
- 11. 如何顯式取消訂閱集合?
- 12. 如何流星訂閱集合
- 13. FreeBSD/amd64程序集 - 如何閱讀「ARGC」?
- 14. 如何取消訂閱socket.io訂閱?
- 15. 如何取消訂閱Weak訂閱MvvmCross
- 16. 如何取消訂閱NServiceBus訂閱?
- 17. 如何從訂閱中返回觀察值以訂閱?
- 18. PayPal訂閱集成工作流程
- 19. 訂閱從WCF
- 20. MQTT.js訂閱從
- 21. 如何從MongoDB集合創建JSON訂閱源
- 22. 如何取消訂閱SignalR集線器代理中的事件處理程序?
- 23. 我如何訂閱在另一個程序集中引發的事件
- 24. 如何在我的android應用程序中集成PayPal訂閱按鈕?
- 25. 報告服務:自定義程序集和訂閱
- 26. 訂閱集合文件
- 27. 訂閱收集錯誤
- 28. 訂閱Meteor.users收集更新
- 29. 訂閱集合(流星)
- 30. 爲什麼集成流程無法訂閱從渠道?
您可以訂閱任何活動。什麼似乎是問題? – Oded
不是從主窗體程序集,而是從DLL? – bricklayer137
是嗎?什麼似乎是問題?這是一個靜態事件。 – Oded