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

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


ではスレッド実行中にCloseHandleしてやるとどうなるでしょうか。
スレッドは行方不明となり、メモリリークを起こすでしょうか?
それとも、スレッドが強制終了してしまうのでしょうか?


MSDNによると、「スレッドのハンドルを閉じても、それに関連するスレッドは終了しません。スレッドオブジェクトを削除するには、最初にスレッドを終了し、次にそのスレッドのすべてのハンドルを閉じなければなりません。」とあります。
従ってスレッドが強制終了してしまうことはありません。


では、メモリリークを起こすのでしょうか。
どこかのサンプルを引っ張ってきて、メインスレッドとサブスレッドの長さを変えてみて、メインスレッドが先に終わるようにしてみればいいと思います。
多分メインスレッドが終了すると同時に、サブスレッドも終わりますよね?
つまり、プロセス終了時にシステムがスレッドを停止してくれます。
従ってメモリリークも起こりません。


…ということは結局、何も起こりません。
CloseHandleするということは、Handleを失うことになるので、スレッドにアクセス出来なくなりますが、問題は起こらないようです。