在Qt中实现关键部分

时间:2011-04-13 20:26:56

标签: multithreading qt qt4 locking


我需要在Qt(4.7.3,Windows XP)中实现关键部分。

例如,公共广告位:

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,但它在单线程情况下导致死锁。

1 个答案:

答案 0 :(得分:4)

QMutex就是你想要的。也许你是递归地使用它而不是创建一个递归的互斥体?这是单线程代码中死锁的唯一解释。