欢迎光临

木子屋

标题: Application.DoEvents使用示例

作者: dnawo

日期: 2015-01-06 10:35 PM

分类: Win编程

内容: 例如有下边一段代码，当程序运行后，从点击按钮到退出循环这段时间，整个应用程序将“卡死”，文本框一直空白最后突然显示10000：
复制内容到剪贴板 程序代码private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 10000; i++)
{
textBox1.Text = i.ToString();
}
}
下面我们在循环体中加入Application.DoEvents，点击按钮后应用程序不会卡死，文本框可以看到数字变化：
复制内容到剪贴板 程序代码private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 10000; i++)
{
textBox1.Text = i.ToString();
Application.DoEvents();
}
}
Application.DoEvents的功能是先处理当前在消息队列中的所有 Windows 消息，然后再继续执行后面的代码，有兴趣的小伙伴可以思考下它和Thread.Sleep的区别。
相关资料
[1].Application.DoEvents 方法：http://msdn.microsoft.com/zh-cn/library/system.windows.forms.application.doevents.aspx
[2].C#经典之Application.DoEvents() ：http://blog.sina.com.cn/s/blog_62cd5a980100wjvo.html
[3].小心使用Application.DoEvents：http://www.cnblogs.com/crazycoder/archive/2006/09/30/519198.html
[4].WebBrowser获取HTML问题：http://blog.csdn.net/zhuzhu837_1/article/details/7794651

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.641 ms

返回

标题: Application.DoEvents使用示例

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.641 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.688 ms

返回