软件界面的响应特性是判断一款软件的非常重要的方面。一般来说,不管你软件功能做得有多么奇妙,如果软件有一点点死机的感觉都会让用户感到很讨厌,甚至怀疑你软件里是否藏有更大的问题。
要提高界面的响应特性,最好的办法莫过于使用多线程,并把呈现界面的线程独立出来。以前只有使用C++才能实现的多线程功能,现在在.Net框架下,所有的语言(包括VB)都可以使用了。不过,使用多线程比使用单一线程要麻烦得多,比如线程之间的同步问题,做得不好很容易出错,而有的时候这种错误要开发人员花上几个星期的时间才能找到。在Windows Form软件中使用多线程更是有一些限制。
下面我们就把在Windows Form软件中使用多线程要注意的问题给大家做一个介绍。
| 首 |
先,什么样的操作需要考虑使用多线程?总的一条就是,负责与用户交互的线程(以下简称为UI线程)应该保持顺畅,当UI线程调用的API可能引起阻塞时间超过30毫秒时(比如访问CD-ROM等速度超慢的外设、进行远程调用等等)就应该考虑使用多线程。为什么是30毫秒?30毫秒的概念是人眼可以察觉到的一个迟滞,大约等同于电影里的一帧停留的时间,最长不要超过100毫秒。
第二,最方便和简单的多线程是使用线程池。通过线程池里的线程运行代

本文介绍了如何使用多线程来提高软件界面的响应性,强调了当API调用可能导致阻塞时应考虑多线程。在Windows Form中,使用线程池和异步委托是常见做法,但需要注意UI线程和非UI线程之间交互的限制,特别是不能在非UI线程中直接操作控件。文章提到了Control类的Invoke和BeginInvoke方法作为安全访问UI元素的手段,同时提醒开发者注意线程同步和死锁问题。

3027

被折叠的 条评论
为什么被折叠?



