在单机版程序的设计中,对于需要较长时间运行的操作,一般都通过后台线程来完成。如果直接用 UI 线程(在 click 事件中) 运行,则 UI 界面长时间得不到机会重新绘制,会造成程序假死的现象(俗称“翻白眼”)。
后台线程更新界面有一些注意事项:
1. 后台线程一般不能直接操作界面控件,需要调用 invoke 之类的函数;
2. 后台线程更新界面的频次不能太慢,太慢则也容易让用户觉得程序“死掉了”;
3. 后台线程更新界面不能太快,一来界面更新太快人眼看不清,容易让人觉得程序好像失控了,在胡乱显示一些乱码;二来,界面更新太快,也会影响整个操作的完成速度,更新界面也是需要 CPU 的。我们知道,电影每秒是 24帧,也就是说,每秒更新画面 24 次,是可以让人觉得很流畅的,每秒更新超过 24 次是不必要的。 Read More