我需要在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