さて、COMを使用してQuickboos(QBFC)と通信するアプリケーションがあります。私のアプリケーションが閉じると、QuickBooksで確立された接続が実際に閉じられてから終了することを確認するメソッドが呼び出されます。このメソッドを呼び出さないと、Quickbooksは、アプリケーションが実行されていなくても、アプリケーションとの開いているセッションを認識するため、ユーザーが会社のファイルを閉じることができない可能性があります。
現在、Quickbooksでさまざまなアクションを実行した後、セッションを閉じています。AppDomain.UnhandledException、Dispatcher.UnhandledException、およびApplication.Exitイベントハンドラーを実装して、Quickbooksでセッションを開いているときにアプリケーションを閉じたり、未処理の例外が発生したりした場合に、セッションが閉じられるようにしました。
これはうまく機能しますが、開発中に問題が発生し、セッションを閉じる前にデバッガーを停止すると、手動でプロセスを終了するまでクイックブックファイルが永続的にロックされます。Quickbooksとの今後のコミュニケーションは、新しいセッションで行われます。
セッションをクリーンアップできるように、「停止」を押したときにデバッガーがアプリケーションの強制終了を完了する前に、コードを実行することは可能ですか?それとも、私たちは水中でただ死んでいるだけですか?私はEnvironmentクラスを調べましたが、「Exit」メソッドは「stop」を押したときにデバッガーが呼び出しているものと似ていると99%確信しているので、答えは「no」だと思います...しかし、私はそれを確実に見つけることは害にはならないだろうと考えました