@egtraイグトランスの頭の中(のかけら)ActiveBasicを中心にプログラミングの話をぼちぼちと。Qiitaの14日目の記事です。前回(STAのメソッド呼び出しを見てみる)はSTAだったので、今度はMTAです。MTAは再入が無い代わりに、スレッドプール(MTA所属)で実行されることがあります。前回同様にコールスタックを見ても良いのですが、こちらはそこまで念入りに確認することもないと思いました。いうわけで、今回は簡単にスレッドIDの出力で見てみることにします。前回のプログラムを少し改造しただけです。}main関数をMTAにし、worker関数のスレッドをSTAにしています。関数workerからs->ReadでMTAへのメソッド呼び出しを行っています。main、worker、Hoge::Readの3ヶ所でスレッドIDを出力させており、実行結果はこんな感じです。25552このように、3つとも別々のスレッドです。このように、MTAに対する他アパートメントからの呼び出しはAPIが抱えているスレッドで実行されます。7以降はデフォルトのスレッドプールを使うと書かれています。アプリケーションマニフェストのSupportedOS要素での指定で動作が切り替わる項目です。プール」欄をご覧ください。アプリケーションマニフェストのほか、IGlobalOptionsのCOMGLB_RPC_THREADPOOL_SETTINGでも設定できるようです。7で対象のスレッドプールが変わっている事は知りませんでした。コメントをキャンセルメールアドレスが公開されることはありません。WPThemes.Info。