我有一个应用程序,其中模拟和可视化都很重要。目前,我的可视化和模拟是在同一循环中完成的(即QT偶数循环)。我想为模拟创建一个单独的循环。创建另一个循环而不影响Singal / Slot等功能的最佳方法是什么?
答案 0 :(得分:3)
最简单的答案是新的QThread提供线程局部事件循环,因此您可以将模拟移动到新的QThread(请参阅Per-thread event loop)。但是,如果没有关于模拟的更多细节,我只能假设它将满足您的需求。
答案 1 :(得分:1)
单线程应用程序中没有多个事件循环。
如果您有多个线程,那么如果您想在这些线程中使用事件,则线程必须在其中运行事件循环。
因此,在某种程度上,你的问题已经解决了。只需使用单独的模拟线程,然后将模拟QObject移动到它。
请注意QThread
是一个私生子,并不是一个合适的C ++类,因为它不能总是安全地被破坏。使用a safe replacement。