防止程序假死,Application.DoEvents()学习(资料收集、转载)
2009-12-12 17:41
357 查看
Application.DoEvents的应用
作者: 周建东 日期: 2007-06-20 06:29
字体大小: 小 中 大for (int q = 0; q < 1000000; q++)
private void button1_Click(object sender, EventArgs e)
private void button2_Click(object sender, EventArgs e)
{
{
textBox2.Text = q.ToString();
}
label3.Text = expendTime.ComputerTime();//计算耗时
}
执行耗时对比:
从较大数据的循环中可以看出效率是很低的,所以如果能不调用DoEvents就尽量不用。也可以通过别的方法来处理的,例如多线程异步调用等。
MSDN中的定义:
当运行 Windows 窗体时,它将创建新窗体,然后该窗体等待处理事件。该窗体在每次处理事件时,均将处理与该事件关联的所有代码。所有其他事件在队列中等待。在代码处理事件时,应用程序并不响应。例如,当将另一窗口拖到该窗口前面时,该窗口不重新绘制。如果在代码中调用 DoEvents,则您的应用程序可以处理其他事件。例如,如果您有向 ListBox 添加数据的窗体,并将 DoEvents 添加到代码中,那么当将另一窗口拖到您的窗体上时,该窗体将重新绘制。如果从代码中移除 DoEvents,那么在按钮的单击事件处理程序执行结束以前,您的窗体不会重新绘制。
通常,您在循环中使用该方法来处理消息。
转载:/article/5808319.html
另外一篇英文:
Keeping your UI Responsive and the Dangers of Application.DoEvents
http://blogs.msdn.com/jfoscoding/archive/2005/08/06/448560.aspx
相关文章推荐
- 使用 Application.DoEvents() 让程序延时(不会假死)
- 关于Application.DoEvents()(转载)
- 网上收集资料(学习StrutsTestCase)转载版2
- C# Application.DoEvents() 处理队列消息,防界面假死。
- Composite UI Application Block(Cab)实例学习资料收集
- 关于Application.DoEvents()(转载)
- C# Application.DoEvents() 处理队列消息,防界面假死。
- Application.DoEvents() 处理队列消息,防界面假死
- Invalidate()方法学习(资料收集)转载
- 收集了一些vuforia的入门资料。为了防止找不回来,先放链接,迟点完整转载。
- 正在学习关于sniffer的编程,收集到的资料(有经过修正程序)
- 网上收集资料(学习StrutsTestCase)转载版
- 关于Application.DoEvents() 避免假死<收藏>
- C# Application.DoEvents() 处理队列消息,防界面假死。
- jQuery源码分析学习--资料收集--更新中
- 微信小程序学习资料
- (实验学习)MATLAB与C/C++混合编程之MATLAB调用C程序,转载的
- VC学习资料收集(4):设计XP风格的按钮
- 防止程序假死
- C/C++中 pragma 用法 (转载,网上找到的学习资料)