代码改变世界

使用线程,防止当前程序被阻塞

2006-04-14 10:40  努力学习的小熊  阅读(1469)  评论(4编辑  收藏  举报

在编写Windows Form程序时有时需要编写一个处理大事件的函数,这导致了程序的运行时间变得很长,这时问题就出现了,当程序没有处理完毕之前当前窗体被锁死了,而且用户如果此时点击窗体的其他部分,便会出现没有响应的标识,这时用户就会以为程序死了,而去关闭程序,如果我们没有对这种操作作相应的处理,很容易导致数据出现错误。这时我们可以采用另开一个线程的方法来处理时间比较长的程序,这样当前窗体就不会被锁死,预估计一下处理时间需要的时间,然后还可以根据这个时间做一个进度条的显示,让用户了解到程序处理的进度,就会给用户一个很良好的感觉。

下面是一个另开线程的小例子,并有进度条显示。

我们用到了System.Threading命名空间中的Thread类来创建一个线程对象,然后将线程的ThreadStart方法代理重新指向到我们要处理的函数即可,然后用它的IsBackground属性将其设置为后台线程,防止被用户误操作而被杀掉,然后调用Thread对象的Start来启动这个线程即可。
    使用线程的小例子