信号灯计数在调试与运行时的表现有所不同(200分)(100分)

  • 主题发起人 主题发起人 ygyu
  • 开始时间 开始时间
Y

ygyu

Unregistered / Unconfirmed
GUEST, unregistred user!
请看系统相关的此问题<br>&nbsp; 200分喔!
 
两次 ReleaseSemaphore(hSem, 1, &amp;nPrevCount)<br>之间主线程的时间片未用完,所以子线程还得不到机会被激活运行<br><br>如果出现这种情况,主线程第一个ReleaseSemaphore(hSem, 1, &amp;nPrevCount)<br>完成后刚好时间片用完了,子线程能得到机会运行,<br>当轮回来主线程运行第2个ReleaseSemaphore(hSem, 1, &amp;nPrevCount)时<br>就会得到你上面想要的结果,不过机会很小.
 
主线程的2个ReleaseSemaphore(hSem, 1, &amp;nPrevCount)<br>之间放一行:Sleep(0) (放弃当前的时间片,让其他同等级线程运行)<br>可能能达到你想要的效果
 
接受答案了.
 
后退
顶部