使用双缓存机制可以避免该问题,有两种方式
方式1:
创建窗口时,创建两个窗口,一个显式窗口,一个隐式窗口,隐式窗口作为缓冲窗口,线程内一个循环周期内需要显示的东西先打印到隐式窗口中,然后通过窗口拷贝的方式,将所有结果拷贝到显式窗口中即可。
open_window(0,0,width - 1,height- 1, (Hlong)fatherWnd, "visible", " ",&showWnd);//真实的显示窗口
open_window(0,0,width - 1,height- 1, (Hlong)fatherWnd, "buffer", " ", &hideWnd);;//缓冲窗口
copy_rectangle(showWnd,hideWnd, 0, 0,height- 1, width - 1, 0, 0);//窗口拷贝
方式二:
在显示线程中,通过控制窗口是否刷新来实现双缓存机制,算子set_system
while{
set_system ('flush_graphic', 'false')
disp1~
disp2~
disp3~
```````
set_system ('flush_graphic', 'true')
disp4~
}
最后一个需要显示的写在开启刷新之后,这样窗口中所有需要显示的会一次性刷新出来。