- 多线程
- 耗时长的操作尽量不在界面主线程里做,另外起线程
- 如果其中又需要更新界面,那么要找某种方式来进行(比如winform中要用BeginInvoke,BeginInvoke的原理是?)
- 同时注意合理使用“loading...”文本或者图片或者progress bar
- 由于和web应用相比,桌面应用大量自行处理多线程,所以要特别注意数据同步等问题
- 如果在窗体的构造函数中使用多线程,要注意线程中操作窗体元素可能会出问题,因为有可能主线程的窗体还未创建完成
- 调试时可能是Ok的,是因为断点在子线程停住了,主线程自己跑完了,所以这时候窗体是创建完成了,但实际运行过程中是不同的,很可能为创建完成
- 如在winform中,可以选择将构造函数中的多线程逻辑放到Form的Shown生命周期时间中去处理,这样可以保证运行这段代码时,窗体肯定加载完成了
- 耗时长的操作尽量不在界面主线程里做,另外起线程
- 尽量将UI操作和逻辑/数据操作分开
- 当然WPF等框架正常使用的话,应该已经分清楚了
- 如果是在winform这种没有从框架级别上区分开的技术中,尽量分别作为独立的类或者函数