このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

スレッドを待つ

スレッドをスタートする関数が StartHogeProcess みたいな名前(にしたのは自分)で、プロセスだと思っていて、処理をスタートさせてからメイン側を終了させた。当然にプロセスが終わるので、そのなかのスレッドも終了する。このときの終了の仕方が、かなり唐突、いきなりブチッつう感じ。だけどエラーとかにはならない。ある意味正常。

Windowsでスレッドを待つ簡単な例 (http://kwmkt.web.fc2.com/contents/c0009.html )

// グローバル変数
CWinThread* g_Thread = NULL;

// スレッドの開始
g_Thread = AfxBeginThread(thread, NULL);
g_Thread->m_bAutoDelete = FALSE;

// スレッド終了待ち
if (g_Thread != NULL) {
    WaitForSingleObject(g_Thread->m_hThread, INFINITE);

    delete(g_Thread);
    g_Thread = NULL;
}