
CWinThreadオブジェクトをアプリケーション内の実行のスレッドを表します。実行のメイン スレッドは、 CWinAppから派生したオブジェクトによって通常提供される;CWinAppはCWinThreadから派生します。CWinThreadオブジェクトを追加できるように、特定のアプリケーション内の複数のスレッド。
CWinThreadがサポートするスレッドの 2 つの一般的な種類です。 ワーカー スレッドとユーザー インターフェイス スレッド。ワーカー スレッドがあるメッセージ ポンプ: スプレッドシート アプリケーションで背景の計算を実行するスレッドなど。ユーザー インターフェイス スレッドがメッセージ ポンプをして、システムから受信したメッセージを処理します。Cwinapp クラスとその派生クラスは、ユーザー インターフェイス スレッドの例です。ユーザー インターフェイスの他のスレッドも直接CWinThreadから派生することができます。
CWinThreadクラスのオブジェクトは、通常、スレッドの間存在します。この動作を変更するには、 m_bAutoDeleteをFALSEに設定します。
CWinThreadクラスは、コードおよび MFC を完全にスレッド セーフにする必要があります。スレッド固有データ スレッド固有の情報を維持するために、フレームワークによってを使用は、 CWinThreadオブジェクトによって管理されます。スレッド ローカル データを処理するには、 CWinThreadのこの依存性のため、MFC を使用して任意のスレッドを MFC で作成する必要があります。ランタイム関数によって作成されたスレッドたとえば、 _beginthreadex MFC Api を使用することはできません。
スレッドを作成するには、 AfxBeginThreadを呼び出します。ワーカーまたはユーザー インターフェイス スレッドをするかどうかに応じて、2 つの形式です。ユーザー インターフェイス スレッドをする場合は、 AfxBeginThreadに、 CWinThreadのCRuntimeClassへのポインターを渡す-クラスを派生します。ワーカー スレッドを作成するには、 AfxBeginThreadに制御関数へのポインターと、制御関数のパラメーターを渡します。両方のワーカー スレッドとユーザー インターフェイス スレッドには、優先度、スタック サイズ、作成フラグ、セキュリティ属性を変更するオプションのパラメーターを指定できます。AfxBeginThreadのポインターを新しいCWinThreadオブジェクトを返します。
AfxBeginThreadを呼び出すのではなく、 CWinThreadを構築することができます-オブジェクトを派生し、 CreateThreadを呼び出します。この 2 段階の構築方法の作成と終了スレッドの実行の間、 CWinThreadオブジェクトを再利用する場合に便利です。
CWinThreadの詳細についてを参照してください マルチ スレッド、 マルチ スレッド: ユーザー インターフェイス スレッドを作成、 マルチ スレッド: ワーカー スレッドを作成と 「マルチ スレッド: 同期クラスの使用方法 Visual の C++ プログラマのガイドの。
サンプル特価; MFC サンプル MTGDI(&N)
参照特価;CWinApp、 CCmdTarget(&N)