vc++ 6.0 互斥量

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:10:39
我现在有一个互斥量,进程和一个线程一起使用:
进程: PaintDebug ("getphoneNumber");
myMutex.Lock();
PaintDebug ("getphoneNumber ok");
myMutex.Unlock();
线程: while(true)
{
myMutex.Lock();
PaintDebug ("COME INTO THE THREAD ");
Sleep(1000);
myMutex.Unlock();
}
线程是个死循环,现在我用另一个程序往这个进程2秒发一个请求,不一会(3,4秒钟吧)就死了?我应该怎么办啊 ?

我写这个的目的是想用进程来写一个变量,然后线程根据这个变量里的值去做相应处理!!
PaintDebug就是输出到窗体去的一个方法

Sleep写在锁里面是个错误。但是线程死掉肯定还有别的原因。

你的PaintDebug方法是堵塞的?
如果 lock释放间隔<<lock请求周期, 死是正常啊.
--因为有100个lock等着那个unlock, 等某个lock等到了 等到它unlock的时候 又有200个lock在那边等着.

把Sleep放在myMutex.Unlock的外面