读书人

线程休眠如何没用

发布时间: 2012-06-03 16:59:40 作者: rapoo

线程休眠怎么没用!

C# code
        private void button1_Click(object sender, EventArgs e)        {            for (int i = 1; i < 1000000; i++)            {                label1.Text = i.ToString();                Thread.Sleep(1000);            }        }

为什么实现不了label上面一个个显示循环值。
求大神解释.....

[解决办法]
Thread.Sleep(1000);
上面加一行
Application.DoEvents();
[解决办法]
label1.Text 赋值,不是立即重绘 而是向 GUI 线程消息队列发送了要求重绘的消息,而只有 for 循环结束了也就是鼠标点击消息处理完了才能取得该重绘消息,加上 Application.DoEvents() 就强制去取得刚才发出的重绘消息来处理。

读书人网 >C#

热点推荐