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
Python pyglet可以在新线程中运行吗?_Python_Multithreading_Python 2.7_Pyglet - Fatal编程技术网

Python pyglet可以在新线程中运行吗?

Python pyglet可以在新线程中运行吗?,python,multithreading,python-2.7,pyglet,Python,Multithreading,Python 2.7,Pyglet,我想在一个单独的线程中运行pyglet,这样我就可以实现一个用于输入的用户界面,而不会被pyglet.app.run()阻止 运行 Window() 很好。然而,运行 t = Thread() t.start() 导致分段错误(堆芯转储),这是由调用pyglet.resource.image()引起的。省略该调用可以消除问题 具体来说,是什么导致了此问题,我如何纠正它?更一般地说,在允许其他程序执行的情况下,使用pyglet呈现窗口的推荐方法是什么?有更好的方法吗?Pyglet使用OpenG

我想在一个单独的线程中运行pyglet,这样我就可以实现一个用于输入的用户界面,而不会被
pyglet.app.run()
阻止

运行

Window()
很好。然而,运行

t = Thread()
t.start()
导致
分段错误(堆芯转储)
,这是由调用
pyglet.resource.image()
引起的。省略该调用可以消除问题


具体来说,是什么导致了此问题,我如何纠正它?更一般地说,在允许其他程序执行的情况下,使用pyglet呈现窗口的推荐方法是什么?有更好的方法吗?

Pyglet使用OpenGL,OpenGL的东西以奇怪的方式与线程交互。也许您可以将主线程留给pyglet,然后将UI代码放到另一个线程中?或者尝试与pyglet的事件循环集成,避免整个线程混乱。@delnan我不知道问题涉及OpenGL,因为有问题的行只读取一个文件。为UI代码生成一个新线程是一个好主意,可能是一个选项。我曾考虑通过pyglet的调度器与它的事件循环集成,但我认为这不足以满足GUI的事件循环。也许最好的选择是完全替换默认的事件循环,但我希望有一个“首选”方法,因为这是一个简单的方法。
t = Thread()
t.start()