1

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

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

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

当我点击“停止”时,是否可以在调试器完成终止应用程序之前执行一些代码,以便我们可以清理我们的会话?还是我们只是死在水里?我看了一下 Environment 类,我 99% 确定它的“退出”方法类似于当您点击“停止”时调试器调用的方法,所以我猜答案是“不”......但我认为确定肯定不会有什么坏处

4

1 回答 1

2

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

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

于 2013-02-20T19:27:46.467 回答