2013-06-03 27 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