SDL冻结但继续运行

时间:2015-05-24 17:20:29

标签: c++ sdl freeze

我已经编写了一个程序来绘制Julia集并将它们存储在.bmp文件中,使用SDL 1.2,在Windows 7上。该程序用于扫描每个像素并绘制某种颜色,定期更新屏幕,以及何时完成后,将图像存储在文件中并等待用户退出。

程序编译并运行正常。然而,这让我很烦,一段时间后屏幕会冻结,虽然程序仍在运行。当所有计算完成后,屏幕解冻,文件正确存储,程序退出时程序正常退出。此外,如果用户在计算完成之前切换窗口然后返回到该窗口,则屏幕会冻结。

程序本身需要大量CPU但内存很少。

知道如何解决这个问题吗?

注意:首先发布在programmers.stackexchange上,但显然这不是问题的正确位置: - )

1 个答案:

答案 0 :(得分:1)

我怀疑当程序进行计算时你不能经常处理SDL事件。您需要在计算中添加事件轮询:

SDL_Event event;
SDL_PollEvent( &event );
... // here handle mouse, keyboard and user events