CWinThread クラス
アプリケーション内の実行中のスレッドを表します。
class CWinThread : public CCmdTarget
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
CWinThread オブジェクトを構築します。 |
パブリック メソッド
名前 |
説明 |
---|---|
CWinThread のオブジェクトの実行を開始します。 |
|
、スレッドが終了時の後処理のためにオーバーライドします。 |
|
スレッドのメイン ウィンドウへのポインターを取得します。 |
|
現在のスレッドの優先順位を取得します。 |
|
スレッドのインスタンスの初期化のためにオーバーライドします。 |
|
特別なメッセージをチェックします。 |
|
スレッド固有のアイドル処理のためにオーバーライドします。 |
|
CWinThread の別のオブジェクトにメッセージをポストします。 |
|
Windows 関数の TranslateMessage や DispatchMessage にディスパッチする前にメッセージにフィルターをかけます。 |
|
アプリケーションに届く前に、特定のメッセージを受け取ります。 |
|
スレッドのメッセージとコマンド ハンドラーがスローしたすべての未処理の例外を受け取ります。 |
|
スレッドのメッセージ ループが含まれます。 |
|
スレッドを中断してカウントをデクリメントします。 |
|
メッセージ ポンプを使ってスレッドの制御関数。 既定のメッセージ ループをカスタマイズするためにオーバーライドします。 |
|
現在のスレッドの優先順位を設定します。 |
|
スレッドを中断してカウントをインクリメントします。 |
パブリック演算子
名前 |
説明 |
---|---|
CWinThread のオブジェクトのハンドルを取得します。 |
パブリック データ メンバー
名前 |
説明 |
---|---|
スレッドの終了にオブジェクトを破棄するかどうかを指定します。 |
|
現在のスレッドへのハンドル。 |
|
現在のスレッドの ID。 |
|
OLE サーバーが埋め込み先編集が有効な場合のコンテナー アプリケーションのメイン ウィンドウへのポインターです。 |
|
アプリケーションのメイン ウィンドウへのポインターを保持します。 |
解説
実行のメイン スレッドは通常 CWinAppから派生したオブジェクトによって提供されます; CWinApp は CWinThreadから派生します。 CWinThread の追加オブジェクトは、特定のアプリケーション内に複数のスレッドができます。
CWinThread がサポートするスレッドの 2 種類の一般的な種類があります: ワーカー スレッドとユーザー インターフェイス スレッド。 ワーカー スレッドにメッセージ ポンプがありません: たとえば、スプレッドシートのアプリケーションでバックグラウンド計算を実行するスレッド。 ユーザー インターフェイス スレッドにシステムから受け取ったメッセージをポンプとプロセスのメッセージがあります。 CWinApp とその派生クラスは、ユーザー インターフェイス スレッドの例です。 ほかのユーザー インターフェイス スレッドは、CWinThreadから直接取得できます。
クラス CWinThread のオブジェクトは、スレッドの期間中、通常、になります。 この動作を変更する場合 FALSEに m_bAutoDelete を設定します。
CWinThread のクラスは、コードと MFC スレッド セーフを完全に行う必要です。 スレッド固有の情報を保持するために、フレームワークによって使用されるスレッド ローカル データが CWinThread のオブジェクトによって管理されます。 このため、スレッド ローカル データを MFC で処理 CWinThread へのリンクは、MFC を使用するすべてのスレッド作成する必要があります。 たとえば、ランタイム関数 _beginthread、_beginthreadex によって作成されるスレッドは、MFC の API を使用できません。
スレッドを作成するには、AfxBeginThreadを呼び出します。 ワーカー スレッドまたはユーザー インターフェイスが必要かを 2 とおりの形式が異なります。 ユーザー インターフェイス スレッドを作成するときは、の CWinThreadの CRuntimeClass に AfxBeginThread 派生クラスにポインターを渡します。 ワーカー スレッドを作成する場合は、制御関数に制御関数およびパラメーターに AfxBeginThread にポインターを渡します。 両方のワーカー スレッドとユーザー インターフェイス スレッドに対して、優先度、スタックのサイズは、作成フラグとセキュリティ属性を変更する省略可能なパラメーターを指定できます。 AfxBeginThread は CWinThread に、新しいオブジェクトへのポインターを返します。
AfxBeginThreadを呼び出す代わりに、CWinThreadの派生オブジェクトを構築し、次に CreateThreadを呼び出すことができます。 この式は階層構造のメソッドは、スレッド実行の継続的な作成と終了時の CWinThread のオブジェクトを再利用する場合に便利です。
CWinThreadの詳細については、" " C++ と MFC によるマルチスレッド、マルチスレッド: ユーザー インターフェイス スレッドの作成、マルチスレッド: ワーカー スレッドの作成と マルチスレッド: 同期クラスの使用方法を参照してください。
継承階層
CWinThread
必要条件
ヘッダー: afxwin.h