2009-08-18 98 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); 
相关问题