AfxBeginThread
更新 : 2010 年 6 月
新しいスレッドを作成します。
CWinThread* AfxBeginThread(
AFX_THREADPROC pfnThreadProc,
LPVOID pParam,
int nPriority = THREAD_PRIORITY_NORMAL,
UINT nStackSize = 0,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL
);
CWinThread* AfxBeginThread(
CRuntimeClass* pThreadClass,
int nPriority = THREAD_PRIORITY_NORMAL,
UINT nStackSize = 0,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL
);
パラメーター
pfnThreadProc
ワーカー スレッドの制御関数を指します。 NULL は指定できません。 この関数は次のように宣言される必要があります。UINT __cdecl MyControllingFunction( LPVOID pParam );
pThreadClass
CWinThread から派生されたオブジェクトの RUNTIME_CLASS。pParam
pfnThreadProc の関数宣言のパラメーターに見られるような、制御関数に渡すパラメーター。nPriority
スレッドの優先度。 利用できる優先度の一覧と説明については、Windows SDK の「SetThreadPriority」を参照してください。nStackSize
新しいスレッドのスタック サイズをバイト数で指定します。 0 のときは、スレッドを作成したプロセスのスタック サイズと同じサイズが既定になります。dwCreateFlags
スレッドの作成を制御する追加フラグを指定します。 このフラグには次の 2 つの値のいずれかを指定できます。CREATE_SUSPENDED サスペンド カウントを 1 としてスレッドを開始します。 スレッドの実行を開始する前に、m_bAutoDelete または派生クラスのメンバーなどの CWinThread オブジェクトのメンバー データを初期化する場合は、CREATE_SUSPENDED を使用します。 初期化完了後、スレッドを実行するには、CWinThread::ResumeThread を使用します。 スレッドは、CWinThread::ResumeThread が呼び出されるまで実行されません。
0 作成直後にスレッドを開始します。
lpSecurityAttrs
スレッドのセキュリティ属性を指定する SECURITY_ATTRIBUTES 構造体を指します。 NULL のときは、スレッドを作成したプロセスと同じセキュリティ属性を使います。 この構造体の詳細については、Windows SDK を参照してください。
戻り値
新たに作成されたスレッド オブジェクトへのポインター。エラーが発生した場合は NULL となります。
解説
最初の形式の AfxBeginThread はワーカー スレッドを作成します。 2 番目の形式の AfxBeginThread はユーザー インターフェイス スレッドを作成します。
AfxBeginThread は新しい CWinThread オブジェクトを作成し、スレッドを開始するために CreateThread 関数を呼び出します。さらに、スレッドへのポインターを返します。 なんらかの原因でスレッド生成に失敗すると、スレッド生成処理全体をチェックし、すべてのオブジェクトを確実に解放します。 スレッドを終了するにはスレッドの内部から AfxEndThread を呼び出すかワーカー スレッドの制御関数から復帰します。
アプリケーション側でマルチスレッド処理が有効にされている必要があります。そうでない場合、この関数は失敗します。 マルチスレッド処理の有効化の詳細については、「Visual C++ コンパイラ オプション」の「/MD、/MT、/LD (ランタイム ライブラリの使用)」を参照してください。
詳細についてAfxBeginThread、記事を参照してください「マルチ スレッド:ワーカー スレッドを作成する と マルチ スレッド:ユーザー インターフェイス スレッドを作成する。
使用例
「CSocket::Attach」の例を参照してください。
必要条件
**ヘッダー:**afxwin.h
参照
参照
概念
履歴の変更
日付 |
History |
理由 |
---|---|---|
2010 年 6 月 |
コメント再修正nPriorityパラメータが顧客からのフィードバック。 |
コンテンツ バグ修正 |