2013-09-10 122 views

回答

1

QMutex這個文件會導致錯誤:

Attempting to unlock a mutex in a different thread to the one that locked it results in an error.

而不是QMutex可以使用 QSemaphore作爲二進制信號,以達到想要的行爲。

//create 
QSemaphore semaphore(1); 

//lock in thread 1 
semaphore.acquire(); 

//unlock in thread 2 
semaphore.release(); 
0

不,你不能這樣做:

文件到QMutex ::解鎖()

「解鎖互斥量試圖在不同的線程到鎖定它產生的一個解鎖互斥。出現錯誤解鎖未鎖定的互斥鎖會導致未定義的行爲。「

是的,它的確在共享內存中,但沒有辦法以標準方式更改它。

+0

嗨,請添加鏈接到您使用的文檔。它可能不被文檔所允許,但可能在現實生活中運行,對於Linux中的Qt runinng來說,通常會有什麼樣的行爲? – osgx

+0

如果你使用'QtCreator'你可以看看那裏的文檔......它應該是你的qt版本的文檔。 – Zaiborg

相關問題