Microsoft Excel 2007 / 2010 用のアプリケーション レベルの VSTO 4 アドインを開発しています。結果は、.Net 4 クライアント プロファイルを使用した Windows フォーム ベースの DLL です。
ここで、従来の COM-DLL を使用する必要があります。参照を設定し、.Net から COM-Interop 経由で COM メソッドにアクセスすることは問題ありません。
しかし、呼び出す必要がある (同期) メソッドが返されるまでに 1 分以上かかる場合があります。
私はあなたの答えを知っています:ワーカースレッドを使用してください...
Task Parallel Libraryを使用して、長時間持続する操作をワーカー タスクに入れ、GUI (Excel) の応答を維持しました。
しかし: インプロセス COM-Call (ワーカー タスク/スレッド内) は、まだGUI スレッドをブロックしているようです。
- なんで?Excel が常に STA (シングル スレッド アパートメント) として実行されているためでしょうか。
- Excel GUI の応答を維持するにはどうすればよいですか?
- 本当に非同期にする方法はありますか?
回答ありがとうございます。
ヨルク