タグ

2009年11月8日のブックマーク (3件)

  • コールバック関数とオブジェクト指向

    コールバック関数とオブジェクト指向 1. スレッドをC++クラスでラップしたい! ワーカースレッドを作る際には、MFCでは普通、AfxBeginThreadにスレッド制御関数へのポインタを渡してスレッドを開始させます。でも、スレッド制御関数に渡せるパラメータは32ビットのポインタ1つだけです。まあ、グローバル変数を使って情報をやり取りすればいいんだけど、それじゃあ、オブジェクト指向っぽくなくてかっこ悪いような気がするし、構造体の中に渡したいパラメータをまとめて、それへのポインタを渡すのもいいけど、もっとかっこいいやり方があります。 ワーカースレッドについて、必要なもの全てをまとめて、1つのクラスを作ってしまえばいいのです。でも、ここで1つ問題が出てきます。スレッド制御関数もクラスのメンバに加えたいのですが、メンバ関数をスレッド制御関数にすることはできないのです。これは、一般的に言えることで

  • スレッドを調べまわって分かったことをメモ - かせいさんとこ

    こうですか?分かりません!>< WIN32のみのお話です。 スレッドって結構実装依存なのね…。 先にまとめ windowsは_beginthreadex推奨(CreateThreadはメモリリークの危険あり) _beginthread、_beginthreadexを呼び出すには、process.h をinclude _beginthreadexに入れられる関数ポインタは、__stdcall か __clrcall __stdcall は static WINAPI 〜 __clrcall は CLR系なので今回は未調査 非staticなメンバメソッド(__thiscall)を呼び出すには、ラッパをかぶせる→staticでないクラスメンバ関数を_beginthreadで実行させる方法。 - かせいさんとこ CreateThread C++では無くCの関数。 そのまま使うとメモリリークを起こす

    スレッドを調べまわって分かったことをメモ - かせいさんとこ
  • Internet Archive

    kenzan8000
    kenzan8000 2009/11/08
    キャッシュページ検索