我有一个类,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