WPF在调试停止时运行代码

时间:2013-02-20 18:56:43

标签: c# .net wpf debugging

好的,我有一个使用COM与Quickboos(QBFC)通信的应用程序。当我的应用程序关闭时,它调用一个方法来确保在退出之前确实已经与quickbooks建立的连接关闭。如果我不调用此方法,则Quickbooks可能不允许用户关闭其公司文件,因为它识别出与我的应用程序的打开会话,即使它已不再运行。

现在,我在使用Quickbooks执行各种操作后关闭会话。我已经实现了AppDomain.UnhandledException,Dispatcher.UnhandledException和Application.Exit事件处理程序,以确保在我们使用Quickbooks打开会话时关闭应用程序或发生未处理的异常时会话已关闭。

这非常有效,但是现在我们在开发过程中遇到了一个问题,如果调试器在会话关闭之前停止,那么quickbooks文件将永久锁定,直到我们手动结束它的进程。今后与Quickbooks的任何通信都将在新的会话中进行。

当我点击'stop'时,是否有可能在调试器完成杀死应用程序之前执行一些代码,以便我们可以清理会话?或者我们只是在水中死了?我看了一下Environment类,我99%肯定它的'Exit'方法类似于当你点击'stop'时调试器调用的方法,所以我猜答案是'不'...但我觉得找出某些

并不会有什么坏处

1 个答案:

答案 0 :(得分:2)

我的建议是仅在需要时建立QBFC连接,并在操作完成后立即释放。

您可以尝试的另一种方法是在应用程序启动期间或在获取新连接之前关闭先前的连接。如果涉及任何类型的会话标识符,请将其保留在文件中并使用它来关闭连接。