好吧,我在很多地方都读到过 pygame 事件处理必须在主线程中完成。我想这样做,但我的问题是,我可以从不同的线程向事件队列添加事件吗?
我想从不同的线程调用 pygame.event.post(myEvent)
并在主循环中处理事件。这可能吗?
编辑:澄清一下,我想为异步网络 i/o 运行一个单独的线程。当一条新消息到达时,线程会在事件队列中放置一个事件,以表示有事情要做。
最佳答案
是时候进行一些侦探工作了!
查看 event.c 中 event_post
的源代码指示 C 函数使用 SDL 调用 SDL_PushEvent
,而不自行检查线程安全。但是,SDL_PushEvent
的文档说:
This function is thread safe, and can be called from other threads safely.
这样看来确实是线程安全的。
关于python - 我可以从第二个线程添加 pygame 事件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538287/