2009-08-18 96 views
0

我有一個用WPF和WF編寫的Windows應用程序,它也通過Quickbooks API與外部Web服務和Quickbooks的本地副本交互。EXE在退出後仍保留在任務管理器中

一切都很好,但唯一的問題是,即使我們退出Windows應用程序和Quickbooks後,我們仍然看到Windows應用程序可執行文件坐在任務管理器中。

任何人有任何想法我們如何解決這個問題?

感謝, badallen

+0

只是爲了仔細檢查,您確定這是獨立的可執行文件仍在運行,而不是* appname * .vshost.exe? – 2009-08-18 17:47:35

+1

我會嘗試調試應用程序。在「關閉」(關閉主窗口)之後,打破調試器以查看現在不可見的應用程序在做什麼。您可能想要使用Microsoft符號服務器來獲取詳細的堆棧跟蹤。單從你的描述來看,很難猜測問題是什麼。 – 2009-08-18 17:47:39

+1

我建議尋找在主應用程序關閉時不會停止的非後臺線程。 – 2009-08-18 17:51:09

回答

0

只是一個猜測,但我想看看你的WF或QuickBooks的API掛在他們的Dispose()電話。有時網絡API太急於清理,而不是僅僅關閉和避開。

處理此問題的一種方法是通過bg線程(帶超時)。類似以下內容

 Action close = api.Dispose; 
     var ar = close.BeginInvoke(cb => close.EndInvoke(cb), null); 
     ar.AsyncWaitHandle.WaitOne(500); 
相關問題