两次 ReleaseSemaphore(hSem, 1, &nPrevCount)
之间主线程的时间片未用完,所以子线程还得不到机会被激活运行
如果出现这种情况,主线程第一个ReleaseSemaphore(hSem, 1, &nPrevCount)
完成后刚好时间片用完了,子线程能得到机会运行,
当轮回来主线程运行第2个ReleaseSemaphore(hSem, 1, &nPrevCount)时
就会得到你上面想要的结果,不过机会很小.
主线程的2个ReleaseSemaphore(hSem, 1, &nPrevCount)
之间放一行:Sleep(0) (放弃当前的时间片,让其他同等级线程运行)
可能能达到你想要的效果