博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# Application.DoEvents() 处理队列消息,防界面假死。
阅读量:7120 次
发布时间:2019-06-28

本文共 959 字,大约阅读时间需要 3 分钟。

 该方法可以处理当前队列的消息,比如一个for循环 5000次 向TextBox中追加文本,那肯定会假死一会儿的。

此时便可使用Application.DoEvents()来处理队列的信息。

简单说下使用Application.DoEvents() 和 不使用Application.DoEvents() 的区别:

不使用Application.DoEvents():

循环5000次的话,界面会假死一会儿,然后等待for循环完全结束后然后显示界面。

使用Application.DoEvents():

那么在for循环中加入这句话,界面消息就会及时的得到更新(既不会假死);

------------------

还是用代码来说明比较简单一点,下面是完整代码:

namespace UpdateFor  {  public partial class Form1 : Form      {  public Form1()          {              InitializeComponent();          }  private void button1_Click(object sender, EventArgs e)          {              WriteText();          }  ///   /// 写入数据  ///          private void WriteText()          {  for (int i = 0; i < 10000; i++)              {                  textBox1.Text += "a";                  Application.DoEvents();              }          }      }  }

 

若以上代码编译有疑问或者问题。可下载完整代码例子:

下载后测试 

有Application.DoEvents();和没有的区别即可。

下载地址:

参考:

转载于:https://www.cnblogs.com/andrew-blog/archive/2011/12/03/CSharp_DoEvents.html

你可能感兴趣的文章
ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法
查看>>
PHP程序员学习路线
查看>>
伯乐在线-技术分享
查看>>
性能测 试理论篇
查看>>
IIS和tomcat共用80端口
查看>>
ES6的模块化
查看>>
Eclipse中.setting目录下文件介绍
查看>>
Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库
查看>>
php调试工具——XDebug使用
查看>>
阿里百川IMSDK--自定义群聊界面
查看>>
JavaScript:日期选择器组件的使用
查看>>
Configure swagger with spring boot
查看>>
nginx重定向规则入门
查看>>
初始化参数之memory_target
查看>>
趣题一则:寻找那扇门
查看>>
Oracle AWR报告提取方法
查看>>
好奇:WayOs破解、OEM、修复、打包等工具大全,满足大家的好奇心发下截图
查看>>
How to use kingshard building a MySQL cluster
查看>>
HibernateAnnotation入门实例
查看>>
iOS 基础介绍 1
查看>>