Excel COM APIを使用してExcel 2003に読み書きするいくつかのコードがプロジェクトにあります。今度はこのコードが2つの場所から呼び出されます:
1. Excelアドイン自体の中から、同じスレッドで。
2.別のスレッドでWPFウィンドウが呼び出されたWPFアプリケーションから。別のスレッドでExcelから読み取るWPFアプリケーションのパフォーマンスが悪い
問題は、WPFアプリケーションがコードを呼び出すときに、Excelからの読み取りに10秒かかる通常の操作に2分かかります。私はそれが新しいスレッドからの呼び出しのためだと思うが、私は100%確実ではない。
アイデア?
私はExcelの中で実行されているコードに基づいて10秒の目標を取る? WPF COM呼び出しは、おそらくExcelプロセスを開始する必要があります。既に実行中のプロセスで試しましたか? –
あなたは正しいです。 10秒間のターゲットは、Excel内のコードに基づいています。しかし、WPF経由であっても、Excelは常に開いており、コードはそのインスタンスで呼び出されます。 Excel COM APIは、Excelファイルの名前をどこにも指定する必要がないので、アクティブなインスタンスで機能します。 – aliensurfer
私がおそらく提案できるのは、2つのプロセスの間に不快感があることだけです。すべてのデータは、プロセスの境界を越えてマーシャルする必要があり、管理対象から非管理対象にマーシャリングする必要があります。不快感がこれを悪化させます。面倒なことがなければ、パフォーマンスの問題がどこにあるのか分かりません。 –