处理其他事件的函数是什么?

gqqnb 2007-08-26 07:28:56
程序在长时间的循环处理中,界面会假死。易语言有个命令叫“处理事件”,说是暂时转让控制权,以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后,命令才会返回。

这样的函数在C#里叫什么,在哪里?
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
spy1024 2007-09-14
  • 打赏
  • 举报
回复
易语言是SB学VB的,DoEvents
gqqnb 2007-08-27
  • 打赏
  • 举报
回复
这就对了吗,DoEvents,谢谢!
gqqnb 2007-08-26
  • 打赏
  • 举报
回复
看来大家不太理解我的意思啊。那就真人真事搬上帖子吧。
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000000; i++)
{
label1.Text = i.ToString();
}
}

怎样修改代码,使标签能显示出数字的递增?
LeoMaya 2007-08-26
  • 打赏
  • 举报
回复
就叫线程啊, 开多一条线程做其他事, 不会让UI卡住
Chris_thanks 2007-08-26
  • 打赏
  • 举报
回复
你的例子只要这样:
private void button1_Click(object sender, EventArgs e)
{

for (int i = 0; i < 10000000; i++)
{
label1.Text = i.ToString();
label1.Refresh();
Application.DoEvents();
}

}
就可以自由拉动窗体,不会出现假死状态.......
Chris_thanks 2007-08-26
  • 打赏
  • 举报
回复
要是循环 的话 就再一个循环后加
ex:
foreach()
{
.....
......
Application.DoEvents();
}
就不会出现假死状态,如果是一个函数运算太大就 开一个线程来执行.....
gto9999 2007-08-26
  • 打赏
  • 举报
回复
我猜的!叫多线程.
gqqnb 2007-08-26
  • 打赏
  • 举报
回复
看来例子举错了。我要的是在循环中不会假死啊!不论循环体内是什么代码,只要连续运行时间一长,界面就会假死。照楼上的方法,把程序置后台再调出也死。
我要不会这样的,再循环体内加一句类似“处理外部事件”的代码,可以让系统处理其他程序的消息!
wuyi8808 2007-08-26
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000000; i++)
{
label1.Text = i.ToString();
label1.Refresh();
}
}

111,115

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧