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

时间:2013-03-21 02:12:27

标签: python thread-safety pygame

我已经在各个地方读过pygame事件处理必须在主线程中完成。我想这样做,但我的问题是,我可以从不同的线程向事件队列添加事件吗?

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

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

1 个答案:

答案 0 :(得分:4)

一些侦探工作的时间!

查看event.cevent_post的来源表示C函数使用SDL调用SDL_PushEvent,而不自行检查线程安全性。但是,SDL_PushEvent的文档说:

  

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

所以它似乎确实是线程安全的。