タグ

2010年9月30日のブックマーク (2件)

  • プログラミング講座 <Waveフォーマット編>

    第2回が来てしまいました。第1回から2年ぐらいでしょうか? 私、MFCで制御系のアプリをかかされる羽目になりその際のテクニックなどをかいときます。 MFCでスレッドを使う MFCでスレッドを使うには AfxBeginThread を利用してCWinThread型のオブジェクトを作るわけですが、通信アプリとか制御系のアプリの場合しばしば「スレッドの終了を待ちたい!」と言う要求が発生します。で、そのやり方です。 class CHogeHoge { public: CHogeHoge(); // コンストラクタ ~CHogeHoge(); // デストラクタ void Start(void); // スレッドの開始 void Stop(void); // スレッドの終了 protected: static UINT ThreadEntry(LPVOID pParam); // スレッド開始位置

  • CWinThreadによるスレッド

    CWinThreadを継承してスレッドを利用する方法。 CWinThreadの動作 CWinThreadでの実装すべき関数は以下の関数がある。 InitInstance Run ExitInstance 実行順序も上記の通り。 終了方法は、自然にスレッドが終了する当然な方法のほかに、中断させる方法もある。 今回の実装では、Run関数をオーバーライドする為、メッセージによる中断が出来ない。 そのため、メンバ変数m_bStopを用意し、さらにセッタとして、SetStop関数を用意する。 CWinThreadを継承したクラスの作成 MFCの ClassWizard を利用して、CWinThread を継承するクラスを作成します。 そして、 InitInstance、 ExitInstance、 Run 関数をそれぞれオーバーライドします。 さらに、先ほどの説明でも登場した、変数m_