我需要在Qt(4.7.3,Windows XP)中實現臨界區域。實現Qt臨界區域
例如,公共時隙:
void MyClass::myPublicSlot(...local params...)
{
...
block of code working with global params;
...
}
功能void myPublicSlot
開始由計時器。
執行此功能可能需要很長時間,有時甚至超過計時器滴答聲(或者,例如,按鈕點擊)。需要鎖block of code working with global params
。
函數調用可以是多線程和單線程的。
P.S.我嘗試過使用QMutex和QMutexLocker,但是它在單線程情況下導致死鎖。
你的函數是遞歸的嗎?然後你需要使用遞歸QMutex。否則,你的程序的語義有點不對。 – hirschhornsalz 2011-04-13 20:29:49