6

さて、私はさまざまな場所で、メインスレッドで pygame イベント処理を行う必要があることを読みました。私はそれをしたいのですが、私の質問は、別のスレッドからイベント キューにイベントを追加できますか?

pygame.event.post(myEvent)別のスレッドから呼び出して、メイン ループでイベントを処理したい。これは可能ですか?

編集:明確にするために、非同期ネットワーク i/o 用に別のスレッドを実行したいと思います。新しいメッセージが到着すると、スレッドはイベントをイベント キューに入れ、何かを行う必要があることを知らせます。

4

1 に答える 1

8

探偵の仕事の時間です!

event.cのソースを見ると、C 関数が SDL call を使用し、それ自体でスレッド セーフをチェックしていないことevent_postがわかります。ただし、ドキュメントには次のように記載されています。SDL_PushEventSDL_PushEvent

この関数はスレッドセーフであり、他のスレッドから安全に呼び出すことができます。

したがって、実際にスレッドセーフであるようです。

于 2013-03-21T20:41:25.077 に答える