C++ 使用SDL/C+;处理事件的最佳方式是什么+;
我将SDL用于我的游戏项目的视图部分。我想在不中断主线程的情况下处理按键事件。所以我决定在另一个视图线程中运行一个无限循环,以捕获任何事件并通知主线程。但是,我不确定这是否是最好的,因为这可能会造成工作负载并降低系统性能?有没有更好的方法来做这类事情? 谢谢 我想在不中断主线程的情况下处理按键事件 SDL本质上不是一个中断或事件驱动的框架。IO通过调用C++ 使用SDL/C+;处理事件的最佳方式是什么+;,c++,sdl,C++,Sdl,我将SDL用于我的游戏项目的视图部分。我想在不中断主线程的情况下处理按键事件。所以我决定在另一个视图线程中运行一个无限循环,以捕获任何事件并通知主线程。但是,我不确定这是否是最好的,因为这可能会造成工作负载并降低系统性能?有没有更好的方法来做这类事情? 谢谢 我想在不中断主线程的情况下处理按键事件 SDL本质上不是一个中断或事件驱动的框架。IO通过调用SDL_WaitEvent或SDL_PollEvent从事件队列中读取事件来发生。这必须发生在“主”线程中,即调用SDL\u SetVideoMo
SDL_WaitEvent
或SDL_PollEvent
从事件队列中读取事件来发生。这必须发生在“主”线程中,即调用SDL\u SetVideoMode
的线程
这并不是说您不能使用多线程,而且这样做有很好的理由,例如,如果不必依赖SDL事件循环,它可以简化网络通信。如果希望在单独的线程中进行模拟,那么它可以通过同步的共享对象来回传递信息。特别是,您始终可以从任何线程将事件安全地放入SDL事件队列。不要再麻烦其他线程了。重点是什么 你的主线程是做什么的?我想象这样的情况:
要了解更多信息,请查看(他是《战神》团队的技术总监)。这一点,输入不是线程安全的。许多SDL教程都明确说明了这一点。