SDL2在非主线程内运行

时间:2014-12-01 00:22:59

标签: c++ multithreading sdl-2

在这种情况下,对于什么算作“主要”线程存在一些困惑。

我在第一个阻塞的线程中运行QT。我想在辅助线程中运行SDL2,所有调用和启动都与此线程隔离。

这是否允许SDL2正确运行并且稳定,因为文档声明它需要在主线程中?此问题SDL2 two windows in different threads也指出你不能在“主”线程之外​​使用某些SDL2函数。

在这种情况下是主线程,就SDL2而言,第一个包含QT的线程,或者第二个线程SDL2是否已在初始化?

1 个答案:

答案 0 :(得分:0)

这只是一个猜测,但是在Linux中,“主线程”的概念是进程中的第一个线程。以下是查看线程是否为主线程的方法:Check if current thread is main thread

因此,要回答您的问题,您不能让QT作为第一个线程运行,而SDL2作为第二个线程运行。您要么需要:

  1. 两个过程。然后,每个线程都运行一个主线程
  2. 运行SDL作为第一个进程(主线程),并运行QT作为子线程(如果QT允许这样做)