大写来讨论一下循环死机的问题,顶者有分
一个winform上一个按钮,一个lable1,按钮事件为:
private void button3_Click(object sender, EventArgs e)
{
for (int i = 0; i < 100000;i++ )
{
label1.Text = i.ToString();
}
}
运行并点击按钮,结果:程序无响应,为何?(这里就不要讨论使用计时器什么的,只需要来解释解释为啥就死了呢?)
如果把循环次数设置成1000或者10000次基本没啥问题。(如果效果不明显的话,可以把循环次数改大一点!)
即便是运行10万次,按照现在CPU的速度,也应该很快就执行完毕了啊!
经试验,如果把label1.text = i.ToString()去掉的话,就不会死机了,但仍然执行完了10万次的循环,因此我个人认为这与winform的刷新界面有关,
请各位高人都来讲一讲,这个刷新的过程,以及被刷新的前提,和刷新原理。