我可以从第二个线程添加 pygame 事件吗

Bub*_*IIC 4 python pygame thread-safety

好吧,我在很多地方都读到 pygame 事件处理必须在主线程中完成。我想这样做,但我的问题是,我可以从不同的线程向事件队列添加事件吗?

我想pygame.event.post(myEvent)从不同的线程调用,而不是在主循环中处理事件。这可能吗?

编辑:澄清一下,我想为异步网络 i/o 运行一个单独的线程。当新消息到达时,线程会在事件队列中放置一个事件,以表示有事情要做。

Cla*_*diu 5

是时候做一些侦探工作了!

event_postevent.c查看源代码表明 C 函数使用 SDL call SDL_PushEvent,而没有自行检查线程安全性。但是,文档SDL_PushEvent说:

该函数是线程安全的,可以安全地从其他线程调用。

所以看起来它确实是线程安全的。