好的,我有一個使用COM與Quickboos(QBFC)進行通信的應用程序。當我的應用程序關閉時,它會調用一種方法來確保在退出之前,與快速手冊建立的連接確實已關閉。如果我不調用此方法,則Quickbooks不允許用戶關閉其公司文件,因爲它可以識別與我的應用程序打開的會話,即使它不再運行。關於調試停止的WPF運行代碼
現在,我正在使用Quickbooks執行各種操作後關閉會話。我已經實現了AppDomain.UnhandledException,Dispatcher.UnhandledException和Application.Exit事件處理程序,以確保如果他們關閉應用程序或發生未處理的異常,同時我們使用Quickbooks打開會話,會話將關閉。
這很奇妙,但現在我們在開發過程中遇到問題,如果調試器在會話關閉之前停止,則quickbooks文件將永久鎖定,直到我們手動結束它的進程。任何未來與Quickbooks的通信都將在新的會話中進行。
當我點擊「停止」時,是否有可能在調試器完成殺死應用程序之前執行一些代碼,以便我們可以清理我們的會話?或者我們只是平靜地死在水中?我看了一下Environment類,並且我99%肯定它的'Exit'方法類似於調試器在你點擊'stop'時調用的,所以我猜測答案是'不'。但我認爲它不能傷害找出某些
解決方案:請勿在Visual Studio中單擊「停止」。而是優雅地終止應用程序。 – 2013-02-20 19:02:12
大聲笑,這是罰款和花花公子,除非意外發生,我們沒有任何其他方式來終止應用程序...加上作爲一個開發者,它是第二種性質的點擊停止按鈕或shift-f5 – 2013-02-20 19:03:30
單擊停止就像通過任務管理器終止進程一樣,沒有任何變化,你將得到任何代碼在那一刻執行。我想你將不得不想出一些外部工具,即使應用程序沒有運行,也可以清理所有的東西。 – 2013-02-20 19:05:07