关于Thread.Sleep()的问题

dingdot 2012-02-08 11:26:56

for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
this.textBox1.Text = i.ToString();

}

为什么文本框的数字不会隔一秒自增一下,而是过了10秒后,直接变成9
...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aSalt 2012-02-09
  • 打赏
  • 举报
回复
楼上的办法太勉强了,还是不提出来的好,别误导楼主了
threenewbee 2012-02-09
  • 打赏
  • 举报
回复
            for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
Application.DoEvents();
this.textBox1.Text = i.ToString();

}


showjancn 2012-02-09
  • 打赏
  • 举报
回复
顶 sp1234 的观点。
  • 打赏
  • 举报
回复
子线程访问UI线程需要用到Invoke
dingdot 2012-02-09
  • 打赏
  • 举报
回复
拜托了,大家,我只是刚刚接触线程,自己弄来玩下,碰到这个问题问下,实际编码当然不会这么干了。

  • 打赏
  • 举报
回复
一个稍微设计过的程序,你的程序,占用不足百分之一的时间改变一下Text,剩下时间你都不阻塞住线程,这才是真正需要的编程技术。
  • 打赏
  • 举报
回复
哎呀,晕啊。

你只是为了显示个Text就把把主线程阻塞死掉了,以后谁还肯让你参与人家的项目开发呢?你这样的编程,还不是动不动就把人家的主线程给阻塞死掉?!
dingdot 2012-02-08
  • 打赏
  • 举报
回复
搞定了,加了个 this.textBox1.Update()
就可以正刷显示了。

110,534

社区成员

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

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

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