メッセージループ
スレッドがGetMessage/DispatchMessageなどで自分のウィンドウ宛てのメッセージを順に取り出し処理し続ける仕組み。入力・描画・イベント処理を担うと同時に、STAが持つOleMainThreadWndClassという隠しウィンドウ宛てに届く、別アパートメントからの呼び出しメッセージもここでディスパッチされる。
この概念が関わる関係
- COMアパートメントモデル(STA/MTA)はメッセージループを前提とします。
- メッセージループはSTAスレッドのブロックによるデッドロックを防ぎます。
- 専用STA COMワーカーはメッセージループを利用します。
- STA(Single-Threaded Apartment)はメッセージループを前提とします。
- Windows Formsはメッセージループを利用します。
- メッセージループはSTAのハング(呼び出し転送の停止)を防ぎます。
- UIスレッドのコンテキストはメッセージループを前提とします。
この概念を扱う記事
- COM/OCX/ActiveX開発でハマる登録とbitnessの罠(言及)
- C#からSTAのCOMを使う専用ワーカーの作り方 ── 生成・呼び出し・イベント・終了を一か所で管理する(言及)
- COM STA/MTA の基礎知識 - スレッドモデルとハングを避ける考え方(言及)
- WPF/WinFormsのasyncとUIスレッドを一枚で整理(言及)
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。