2013-06-03 26 views
2

是否可以将C++ 11互斥量与Qthread混合?将C++ 11线程操作与QThread操作混合

例如,如果你有一个Dll,你想用qt gui来从你的dll加载一个函数,还有一个函数来更新单独线程上的gui。 Dll函数包含一个大循环,并放置一个C++ 11互斥体,以便只有一个线程可以读取或写入在Dll函数中使用的变量。使用QThreads还是必须将QThreads与QMutex一起使用以及C++ 11线程操作是否可行或可行?

回答

1

我想不出为什么你不能在QThread中使用C++ 11互斥体。 锁定QMutex或C++ 11互斥锁将产生相同的效果:除非它已被解锁(或配置为递归锁定,如果可用),否则无法重新锁定它。 我不认为QMutex实现与QThread紧密结合。

我想用C++ 11个互斥体和在Linux中实现时QMutex依靠并行线程。 它们在Windows上实现时可能都依赖于Windows API。

当然,如果我错了,随时纠正我。

顺便说一句,你是否用QThread运行任何测试使用C++ 11互斥锁?

+0

谢谢,我会试一试,让你知道它是否工作! – Alex

+0

谢谢,这真的很有帮助。 – Alex

+0

@Alex不客气:) – Xaqq