Last Updated 2005/01/20
Visual C++ MFC スレッド
クラス関数をスレッドにする
2005/01/20

C++ のクラス内の関数をスレッド(ワーカースレッド)にするには,関数を static 宣言して AfxBeginThread() に渡す.

【その1】
class Foo {

    UINT thread_loop();      // スレッドの本体

public:
    static UINT thread_entry(LPVOID v) {
        ((Foo*)v)->thread_loop();
    }
  ...
};


Foo foo;
AfxBeginThread( &Foo::threqad_entry, &foo );



【その2】
class Foo {
public:
    static UINT ThreadProc(LPVOID pParam);
};


AfxBeginThread(ThreadProc, (LPVOID)this);


参照
クラス内コールバック関数
ワーカースレッドからメンバアクセス
前後のTips
クラス関数をスレッドにする

DSS ProgrammingTipsCGI Ver1.02