Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SDL2.0我可以不在主线程中运行它吗?_C++_Multithreading_Sdl - Fatal编程技术网

C++ SDL2.0我可以不在主线程中运行它吗?

C++ SDL2.0我可以不在主线程中运行它吗?,c++,multithreading,sdl,C++,Multithreading,Sdl,我现在使用Boost线程和SDL1.2。我想知道我是否会使用SDL2。*我是否能够不从主线程(在bouth windows和linux上)运行它?从纯技术的角度来看,没有理由不可以。我没有使用Boost线程或sdl2.*,但是我使用了sdl1.2、SDL线程、Windows线程和pthread。在Windows上,我遇到的唯一障碍是创建SDL窗口的线程必须成为处理事件的线程。除此之外,我没有遇到任何问题。我不知道Linux是否也是如此,因为我总是在移植之前让代码在Windows上运行。` SDL

我现在使用Boost线程和SDL1.2。我想知道我是否会使用SDL2。*我是否能够不从主线程(在bouth windows和linux上)运行它?

从纯技术的角度来看,没有理由不可以。我没有使用Boost线程或sdl2.*,但是我使用了sdl1.2、SDL线程、Windows线程和pthread。在Windows上,我遇到的唯一障碍是创建SDL窗口的线程必须成为处理事件的线程。除此之外,我没有遇到任何问题。我不知道Linux是否也是如此,因为我总是在移植之前让代码在Windows上运行。

` SDL窗口必须是处理事件的线程。`这是我的主要问题-是否可以创建窗口并处理事件而不是从主线程?否。生成窗口的线程绝对必须是获取事件的线程。如果在线程中调用
SDL\u CreateWindow()
(让我们称之为thread
X
),则只能调用
SDL\u PollEvent()
从线程内
X
。如果尝试从线程
Y
调用
SDL\u polleevent()
,则不会收到任何事件。