WPF在调试停止时运行代码

本文关键字:运行 代码 调试 WPF | 更新日期: 2023-09-27 18:00:15

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

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

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

当我点击"停止"时,是否可以在调试器终止应用程序之前执行一些代码,以便我们可以清理会话?还是我们只是死在水里了?我看了一下Environment类,我99%确信它的"Exit"方法与调试器在点击"stop"时调用的方法相似,所以我猜答案是"no"。。。但我认为找出某些是无害的

WPF在调试停止时运行代码

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

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