有关DoEvents的问题?

fq_lucky 2005-10-25 05:21:52
各位老师,我的一个Thread中有一个while(true)的循环,
为了响应窗口及鼠标等动作,我在里面放了Application.doevents();
但是,运行程序后,移动窗体还没问题,但窗体上的button等都
点不了,没反应,窗体上显示“(没有响应)”,请问是什么原因,
谢谢!
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhy0101 2005-10-26
  • 打赏
  • 举报
回复
可能循环太快了,来不及接受点击消息到消息队列。
fq_lucky 2005-10-26
  • 打赏
  • 举报
回复
哪位帮帮忙亚
JasonHeung 2005-10-26
  • 打赏
  • 举报
回复
使用:
Thread.Sleep(200);
xingshi310 2005-10-26
  • 打赏
  • 举报
回复
不要进行while(true)的死循环,可以利用事件触发机制活着让线程sleep一段时间。以释放系统资源进行其他操作
CruelYoung123 2005-10-26
  • 打赏
  • 举报
回复
用了多线程的话就不用这个了吧?
s5689412 2005-10-26
  • 打赏
  • 举报
回复
不要对Application.DoEvents()太过乐观了。
比如我刚才测试了一下,
private void Form1_Load(object sender, System.EventArgs e)
{
while (true)
{
Application.DoEvents();
}
}
Form根本无法显示出来。
所以建议还是另想办法,重新设计或者尝试用多线程(如果必要的话)。

BTW:从VB转到.NET的很多人习惯用这个函数来让自己的界面有响应,不过个人认为这个方法不是很好。

110,534

社区成员

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

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

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