マルチスレッド

_beginthreadと_beginthreadexはいろいろ違う

_beginthreadexはスレッドを終了した場合ハンドルを残すようだが、_beginthreadは消すそうだ。 スレッドを作ったら放置な管理人には_beginthreadでいいような気がしてきた。 公式には、_beginthreadex推奨らしいのだが・・・。

スレッド実行中にCloseHandleしてよいのか?

C/C++言語にて_beginthreadexを使ってスレッドを作成したとき、戻り値としてスレッドのハンドルを取得できます。 通常はスレッドが終了したのを確認した後、CloseHandleして後処理をします。 ではスレッド実行中にCloseHandleしてやるとどうなるでしょうか。…

Visual Studio 2003 .NET でマルチスレッドのプログラムを作る

管理人の環境はVisual Studio 2008で、いろいろライブラリが入っていて、今回の記事のような心配はないようだ。 だが、知っておくとエラーを見たときにすぐに対処できるだろう。 まず、以下のようなマルチスレッドのプログラムを作成したとする。 #include <stdio.h> </stdio.h>…