您的位置:首页 > 移动开发

关于Application.DoEvents()[转]

2010-09-09 23:40 447 查看
记得第一次使用Application.DoEvents()是为了在加载大量数据时能够有一个数据加载的提示,不至于系统出现假死的现象,当时也没有深入的去研究他的原理是怎样的,结果在很多地方都用上了Application.DoEvents(),今天看到了关于这方面的一些文章,知道我以前有些用法是不当的,有些地方需要慎用Application.DoEvents()。
首先我们先看看在循环比较大的程序中,它的作用还是不错的,起到了一个实时响应的效果,例如:


for (int q = 0; q < 1000000; q++)


{


textBox1.Text = q.ToString();


Application.DoEvents();//实时响应文本框中的值


}

如果没有加上 DoEvents的话,由于循环时间会比较久就会出现假死的状态,而且程序不能处理其他的事件。而如果加上DoEvents的话就会对文本框的值实时响应,给用户带来较好的用户体验,可是DoEvents也带来了效率上的问题,处理同样的一个事件调用了DoEvents后效率降低了好几倍,这也是为什么要慎用的原因了。

现在来分析的话,就可以解释为什么,加了这行代码后。程序就会出实现类似双线程的功能,他会去寻找是否有别的事件,因为有这段时间才使得数值有时间可以显现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: