Application.DoEvents() 是不是等于vb中的DoEvents函数啊?

解决方案 »

  1.   

    引用MSDN:如果在代码中调用 DoEvents,则您的应用程序可以处理其他事件。例如,如果您有向 ListBox 添加数据的窗体,并将 DoEvents 添加到代码中,那么当将另一窗口拖到您的窗体上时,该窗体将重新绘制。如果从代码中移除 DoEvents,那么在按钮的单击事件处理程序执行结束以前,您的窗体不会重新绘制。通常,您在循环中使用该方法来处理消息。
      

  2.   

    是的,举个例子:private bool flag = false;private void button1_Click(object sender, System.EventArgs e)
    {
    for(int i = 1; i < 1000000000; i++)
    {
    Application.DoEvents();
    if(flag == true)
    {
    MessageBox.Show("1");
    break;
    }
    }
    }private void button2_Click(object sender, System.EventArgs e)
    {
    this.flag = true;
    }
      

  3.   

    将操作权交回操作系统,就是说程序停顿一下。
    比如发送数据时要等数据发送完才能发下一条,可以这样用:
    Application.Doevents();
    Thread.Sleep(1000);
    将操作权交回操作系统然后程序睡眠1秒钟。