.NET アプリケーションのスレッドで作成および実行している COM オブジェクトがいくつかあります。スレッドはシングル スレッド アパートメントとしてマークされており、すべてが機能しているようです。私の理解では、これらのスレッドがメイン スレッドから COM オブジェクトにアクセスしようとすると、それらのオブジェクトは .NET で自動的にマーシャリングされ、シリアル化されます。少しゆっくり。
私の質問は、問題なく動作しているように見えますが、作成中の STA スレッドでメッセージ ループをポンピングしていないということです。メッセージ ループを回避したいのは、それが引き起こす余分な複雑さ (および効率の低下の可能性) のためです。
なぜメッセージ ループが必要なのかについてのアドバイスをたくさん読みました (主に非常に役立つ Hans Passant から)。私の理解では、メッセージ ループはスレッド A に、他のスレッド B がその COM オブジェクトを要求できる場所を提供します。スレッド A に住んでいると、マーシャリングして遊ぶことができます。それが正しければ、他のスレッドがスレッド A の COM オブジェクトから何も要求しない限り、スレッド A はメッセージ ループをポンピングしないことで安全でしょうか? または、メッセージ ループが発生する可能性がある他のケースはありますか?
ここで火遊びですか?また、火遊びをしているのか、そうでないのかと尋ねることはありますか?