程序在长时间的循环处理中,界面会假死。易语言有个命令叫“处理事件”,说是暂时转让控制权,以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后,命令才会返回。这样的函数在C#里叫什么,在哪里?

解决方案 »

  1.   

    看来大家不太理解我的意思啊。那就真人真事搬上帖子吧。
            private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < 10000000; i++)
                {
                    label1.Text = i.ToString();
                }
            }怎样修改代码,使标签能显示出数字的递增?
      

  2.   

    private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < 10000000; i++)
                {
                    label1.Text = i.ToString();
                    label1.Refresh();
                }
            }
      

  3.   

    要是循环 的话 就再一个循环后加  
    ex:
    foreach()
    {
    .....
    ...... 
     Application.DoEvents();
    }
    就不会出现假死状态,如果是一个函数运算太大就 开一个线程来执行.....
      

  4.   

    你的例子只要这样:
            private void button1_Click(object sender, EventArgs e)
            {            for (int i = 0; i < 10000000; i++)
                {
                    label1.Text = i.ToString();
                    label1.Refresh();
                    Application.DoEvents();
                }
         
            }
    就可以自由拉动窗体,不会出现假死状态.......
      

  5.   

    这就对了吗,DoEvents,谢谢!