C#の自動化されたからと、Microsoft Wordを開くのパフォーマンスを向上させる方法?
-
21-09-2019 - |
質問
私は自分のアプリケーションからのフィールドを埋め自動化されたことをMicrosoft Wordのテンプレートがあり、ユーザー要求を印刷するとき、私は、このテンプレートを開きます。
しかし、Wordアプリケーションを作成するユーザー要求がフィールドを充填した後、印刷するたびに、非常に高価であり、テンプレートを開いている間に、いくつかの遅延につながることができます。私は、Wordへの参照をキャッシュすることを選択したので、その後、ちょうど新しい塗りつぶされたテンプレートを開きます。
ファイルを開くと、パフォーマンスの問題を解決し、はWordのたびを再作成するよりも安価であるが、ユーザが単に文書全体ではなく、Wordアプリケーションを終了したとき、これはのみ動作します。テンプレートを開くの次の要求に応じて、「のRPCサーバーを利用できませんの」:これが発生した場合Wordへの私の参照が無効になり、例外を返します。私はBeforeClosing
イベントをサブスクライブしようとしましたが、このトリガは、ドキュメントを閉じるだけでなく、Wordを終了ます。
私の質問は、Word文書を閉じるか、私は適切な行動、またはWordテンプレートを開くのパフォーマンスを向上させることについての思考の別の方向のための任意のヒントを取るように、全体のアプリケーションを終了しているかどうかを確認する方法です。
解決
私は適切にWordの閉鎖イベントをサブスクライブする方法に慣れていないんです。あなたが取ることができる1つのオプション楽観Wordが閉じていないと仮定して、キャッシュのルートを使用することであるようにしかし、それはそうです。ハイレベルでのWordを閉じたときにスローさException
タイプをキャッチ。あなたは、この例外が発生した場合、それが最初に起こっていたように、単語にあなたの参照を削除し、操作を繰り返します。
あなたはすべての時間のキャッシュをこのように得ることはありません。しかし、あなたは、ユーザーが文書のみを閉じた状況を利用することができます。