【发布时间】:2014-12-01 00:22:59
【问题描述】:
对于在这种情况下什么算作“主”线程有些困惑。
我在第一个阻塞的线程中运行了 QT。我想在辅助线程中运行 SDL2,所有调用和初始化都与该线程隔离。
这是否允许 SDL2 正确且稳定地运行,如文档所述,它需要在主线程中?这个问题SDL2 two windows in different threads 也指出您不能在“主”线程之外使用某些 SDL2 函数。
本例是主线程,就SDL2而言,第一个线程包含QT,还是第二个线程SDL2被初始化了?
【问题讨论】:
-
这很可能是平台相关的。如果您改为创建您创建的第一个线程,那么您是安全的。在那个线程中,您可以在循环中调用
QCoreApplication::processEvents()并轮询 SDL 事件,而不是使用QCoreApplication::exec()阻塞
标签: c++ multithreading sdl-2