通过WaitforSigleObject()取得对象;
后用Sleep.
如WaitforSigleObject(**);
Sleep(10);
即然我取得了得了对象,为什么用Sleep(10);程序又会执行别的线程,
就像我进了拿着匙钥房间里,为什么别的人还可以进入房间。
各位,可不可以打个比方,说一下为什么呢?
后用Sleep.
如WaitforSigleObject(**);
Sleep(10);
即然我取得了得了对象,为什么用Sleep(10);程序又会执行别的线程,
就像我进了拿着匙钥房间里,为什么别的人还可以进入房间。
各位,可不可以打个比方,说一下为什么呢?
WaitforSigleObject只会在一定的时间内等待一个事件的发生,当事件发生了或者超时,WaitforSigleObject函数都会返回,然后程序可以执行任何操作.
如果你这么比较的话,那就是你在一定的时间内,可以拥有进入房间的权限,你退出房间或者过完了这段时间,房间的权限正常分配.
CloseHandle(handleMutex);
****
::WaitForSingleObject(handleMutex,INFINITE);
Sleep(1);
我取得对象后才Sleep(1);即然我取得了对象,我又没有release(),当然是其它线程不能得了。但Sleep(1);后,为什么其它线程就可以取得呢?我是这样用的,
CreateMutex中第二个参数为false的时候,the calling thread does not obtain ownership of the mutex,要达到你的要求,改为TRUe看看.
WaitforSigleObject(**);//这个是用来同步的
Sleep(10);//这个不是做同步用的,很可能是接下来你是做一直需要CPU的tasks,sleep一下可以降低performance.