Application.DoEvents()怎么用 我在窗体中执行一个过程,该过程比较耗时间,这期间对窗体动作都没有反映,我用了Application.DoEvents();也不行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是在循环中吗?不是循环的话,DoEvents没用Application.DoEvents();加在哪里的? private void timer1_Tick(object sender, System.EventArgs e) { if(bRed) { //this.LocateFeatureWithColorEvent(selFeature,false,true,255 ); this.ClearSelectedEvent(); bRed=false; } else { this.DisplayLine(); bRed=true; } Application.DoEvents(); }加载定时器中,this.DisplayLine();这个过程比较花时间,造成界面上其他按钮都不能点击了 这样没有用的,要加在耗时间的过程内部,而且要在循环内部当过程执行的时候,是不会处理消息的,除非你每隔一段时间(很短的)就放弃CPU,让系统处理一下消息 DoEvents就是交出控制权给操作系统,使其处理当前在消息队列中的所有Windows消息 界面用线程也不要紧。执行界面元素刷新时,先判断是否线程冲突,然后调用相关窗体的Invoke就可以了。 我今天在循环里用doevents了 不过运行一会就堆栈错误什么的,程序自动退出 使用线程,性能会有所改善;using System.Threading;T1 = new Thread(new ThreadStart(YourMethod)); 学习中.欢迎加入ASP.NET(C#)学习交流QQ群号:32801051 这种情况只能使用线程啦doevent是没有用的 控件总是要重新渲染,才正常显示 c#出现的错误? 向csdn提问. 关于datagrid的几个小问题~~~ 一个关于数据的很有趣的问题解决就给分,在线等 C#如何实现纵向进度条[属性里面肯定没有] 简单的几行,速度太慢了,哪位给提提意见? C# 读取mysql数据库中文正常,写入出错 窗口hide()后,再次显示时窗口界面闪烁怎么解决 SQL Server数据库登陆问题 为什么我进小类的时候它老是显示加载中?结果我就进不去小类!! 怎么用c#调用运行word文档的宏?
{
if(bRed)
{
//this.LocateFeatureWithColorEvent(selFeature,false,true,255 );
this.ClearSelectedEvent();
bRed=false;
}
else
{
this.DisplayLine();
bRed=true;
}
Application.DoEvents();
}加载定时器中,this.DisplayLine();这个过程比较花时间,造成界面上其他按钮都不能点击了
这样没有用的,要加在耗时间的过程内部,而且要在循环内部
当过程执行的时候,是不会处理消息的,除非你每隔一段时间(很短的)
就放弃CPU,让系统处理一下消息
执行界面元素刷新时,先判断是否线程冲突,然后调用相关窗体的Invoke就可以了。
using System.Threading;
T1 = new Thread(new ThreadStart(YourMethod));
doevent是没有用的