我有一個類,audio_engine_interface,並在main.cpp中,我將它添加到QML的東西。QThread和QML鎖定
viewer.rootContext()->setContextProperty("engine", engine);
在audio_engine_interface,我有一個audio_engine類,它是計算密集型的,它需要在自己的線程中運行。但是,當我這樣做時,整個QML線程鎖定了,這意味着我不能暫停(非常重要)。我錯過了什麼嗎?
編輯: 此線程不會搞亂任何東西或從其他地方訪問對象。但是,它有一個暫停功能,需要在某個時候調用。對於它的價值,引擎正在進行音高轉換。
是的,這裏有一個QML特定的機制。否則,GUI線程是GUI線程,並且是唯一可以渲染的線程。 http://qt-project.org/doc/qt-5/qml-qtquick-workerscript.html – user1095108
我使用的是C++,而不是Javascript。 – Jacob
是的,但你可以從javascript調用C++,反之亦然。所以這與你所使用的幾乎無關。 – user1095108