1

アプリケーションからフィールドへの入力を自動化した Microsoft Word テンプレートがあり、ユーザーが印刷を要求すると、このテンプレートを開きます。

ただし、ユーザーがフィールドに入力した後に印刷を要求するたびに Word アプリケーションを作成すると、非常にコストがかかり、テンプレートを開くときに遅延が発生する可能性があります。そのため、Word への参照をキャッシュしてから、新しく入力されたテンプレートを開くことにしました。

ファイルを開くと毎回 Word を再作成するよりもコストがかからないため、パフォーマンスの問題は解決しましたが、これはユーザーが Word アプリケーション全体ではなくドキュメントを閉じた場合にのみ機能します。これが発生すると、Word への参照が無効になり、次のテンプレートを開く要求で、" RPC サーバーが利用できません" という例外が返されます。イベントにサブスクライブしようとしました BeforeClosingが、これにより Word が終了し、ドキュメントが閉じられます。

私の質問は、Word がドキュメントを閉じているのか、アプリケーション全体を終了しているのかを知る方法です。そのため、適切なアクションを実行したり、Word テンプレートを開くパフォーマンスを改善するための別の方向へのヒントを見つけたりすることができます。

4

1 に答える 1

3

Word のクロージング イベントを適切にサブスクライブする方法に慣れていません。しかし、Word が閉じられていないことを楽観的に想定し、キャッシュ ルートを使用するという選択肢があるようです。Exception大まかに言えば、Word が閉じられたときにスローされる型をキャッチします。この例外が発生した場合は、単語への参照を削除し、最初に発生した場合と同じように操作を繰り返します。

この方法では、常にキャッシュを取得することはできません。ただし、ユーザーがドキュメントを閉じるだけの状況を利用することができます。

于 2010-03-20T10:16:20.740 に答える