ついでに>>576のプログラムの問題点と解決方法を。

まず、コンパイラの最適化の問題。
変数nCntの宣言にvolatileを付けていますか? 付けていなければ、付けること。

次に、100 > nCnt の比較が、排他制御の外にあること。
nCntに触っていいのは、排他制御の内側だけ。