Mfc-multithreading
提供:Dev Guides
MFC-マルチスレッド
Microsoft Foundation Class(MFC)ライブラリは、マルチスレッドアプリケーションのサポートを提供します。 スレッドは、プロセス内の実行のパスです。 メモ帳を起動すると、オペレーティングシステムによってプロセスが作成され、そのプロセスのプライマリスレッドの実行が開始されます。 このスレッドが終了すると、プロセスも終了します。
必要に応じて、アプリケーションに追加のスレッドを作成できます。 MFCアプリケーションのすべてのスレッドは、CWinThreadオブジェクトによって表されます。 ほとんどの場合、これらのオブジェクトを明示的に作成する必要はありません。代わりに、フレームワークヘルパー関数AfxBeginThreadを呼び出して、CWinThreadオブジェクトを作成します。
新しいMFCダイアログベースのアプリケーションを作成して、簡単な例を見てみましょう。
ステップ1 *-静的コントロールのキャプションとIDをそれぞれ[スレッドの開始]ボタン*と *IDC_STATIC_TEXT に変更します。
- ステップ2 *-2つのボタンをドラッグし、これらのボタンのクリックイベントハンドラーを追加します。
- ステップ3 *-静的テキストコントロールのコントロール変数を追加します。
- ステップ4 *-CMFCMultithreadingDlg.cppファイルの先頭に次の3つのグローバル変数を追加します。
- ステップ5 *-CMFCMultithreadingDlgクラスにWM_TIMERメッセージを追加します。
OnTimer()の実装は次のとおりです
- ステップ6 *-CMFCMultithreadingDlgクラスのAfxBeginThreadで使用するサンプル関数を追加します。
- ステップ7 *-スレッドを開始する[スレッドの開始]ボタンのイベントハンドラーの実装です。
- ステップ8 *-スレッドを停止する[スレッドの停止]ボタンのイベントハンドラーの実装です。
- ステップ9 *-完全なソースファイルです。
- ステップ10 *-上記のコードをコンパイルして実行すると、次の出力が表示されます。
- ステップ11 *-[スレッドの開始]ボタンをクリックします。
- ステップ12 *-[スレッドの停止]ボタンをクリックします。 スレッドを停止します。