Visual Studio Tools for Office で重い処理する場合について

VSTO に慣れていないので、色々とまとめたり検証したりしていたら、有識者各位から素敵な突っ込みを多々頂いたので纏めておきます
0
Daichi @normalian

ですよね… RT @hidori: normalian VSTO アドインのコンテキストは、そのアドインをホストしている Office アプリケーションのもの=起動済みなので、スレッディングモデルを変更することは出来ません。

2012-04-06 17:12:34
Hiroaki SHIBUKI @hidori

@normalian 問題は、VSTO アドインのコンテキストからワーカースレッドにインターフェースポインタを引き渡す際に、それをマーシャリングしなくてはダメってこと。

2012-04-06 17:14:12
Daichi @normalian

@hidori VSTO必須じゃないので、「もう VSTO じゃなくても良いかも☆(ゝω・)vキャピ」な感じはしております(汗

2012-04-06 17:16:10
Hiroaki SHIBUKI @hidori

@normalian VSTO じゃなくてもいいなら、PIA を参照設定した単品アプリからフツーにオートメーションしたほうが早いと思いますよ (^^;

2012-04-06 17:17:08
Tadahiro Ishisaka🖖 @ishisaka

http://t.co/XWj5HXop RT @normalian: @hidori VSTO必須じゃないので、「もう VSTO じゃなくても良いかも☆(ゝω・)vキャピ」な感じはしております(汗

2012-04-06 17:17:52
Hiroaki SHIBUKI @hidori

@normalian VSTO でふんばるなら、ワーカースレッドなんて夢見ないで、適当な粒度に処理を分解してプログレスを表示してお茶にごすとか。

2012-04-06 17:18:24
Daichi @normalian

正直、VSTO で踏ん張るなら、これが一番現実的だと思ってました(汗 RT @hidori: normalian VSTO でふんばるなら、ワーカースレッドなんて夢見ないで、適当な粒度に処理を分解してプログレスを表示してお茶にごすとか。

2012-04-06 17:19:10
Daichi @normalian

色々と勉強になりすぎるので togetter でまとめておこうか

2012-04-06 17:19:50
Hiroaki SHIBUKI @hidori

@normalian 古典の世界ですw>自力で処理を分割してプログレス表示

2012-04-06 17:19:54
Daichi @normalian

古典の世界がはびこる会社にいるので何とも言えない気分になってしまうなど(白目

2012-04-06 17:20:52
Hiroaki SHIBUKI @hidori

真面目にマーシャリングするのがめんどくさかったら、GIT (Global Interface Table) 使って逃げるという秘境技もあったりなかったり。。。

2012-04-06 17:23:05
++C++; // 管理人: 岩永 @ufcpp

@normalian ちょっとググったら、AppDomainまたいでるのが問題くさいので、 http://t.co/4r2Mkkh9 これ使えばいいんじゃね?

2012-04-06 18:00:44
++C++; // 管理人: 岩永 @ufcpp

@normalian とりあえず、BackgroundWorkerはそもそもオワコンなので、VSTO抜きにして触らない方が良いよ。

2012-04-06 18:01:08
++C++; // 管理人: 岩永 @ufcpp

@normalian もう1個。こっちの方がコードのハイライトかかってて見やすい。 http://t.co/hO5OLPNe

2012-04-06 18:01:58
Hiroaki SHIBUKI @hidori

@normalian 僕のゆってる「マーシャリング」は .NET のマーシャリングじゃなくて、「OLE/COM のマーシャリング」である点に注意ね。この場合の境界は .NET の AppDomain ではなく、OLE/COM のアパートメントです。

2012-04-06 18:08:23