id:pikkaruの第一子誕生。とid:its-tomから連絡がくる。連絡網が充実。
多分、ここに書けば研究室関連の方がにも連絡がいくでしょう。
本当におめでとう!
日: 2007年3月23日
VisualC++のワーカースレッドからメンバ変数へアクセスする方法
web上にもあちこちで掲載されてはいますが…。
ダイアログアプリケーションとかでワーカースレッドを走らせて*1スレッド内でダイアログ内の部品を更新させる処理を行う場合。
ワーカースレッドを呼び出す際に次の様に書く。
AfxBeginThread(ThreadPrcs, this);
これで、呼ばれるThreadPrcs関数はおそらく次の様な形になる。
例えば、ダイアログがCFooDlgというクラスで定義されていた場合、
UINT ThreadPrcs(LPVOID p) { CFooDlg* pDlg = (CFooDlg*)(p); CString strTxt; for(int count=0; count<100; count++){ Sleep(3000); // ものすごく重い処理。 strTxt.Format("%d回目の重い処理", count); pDlg->m_strMessage = strTxt; } }
これでメンバ変数にアクセスでき、変数を更新することが出来る。
*1:そもそも、コレが余り好ましくない実装方法なのかもしれないが
藤井隆。
ひたすら踊っている番組をやっていた。
TRFのOvernight Sensationを普通に一緒に踊っていた。さすがだ。

- アーティスト: TRF,TETSUYA KOMURO,小室哲哉,久保コージ
- 出版社/メーカー: エイベックス・トラックス
- 発売日: 2006/11/29
- メディア: CD
- クリック: 2回
- この商品を含むブログ (2件) を見る