Application.DoEvents()的作用:處理所有的當前在消息隊列中的Windows消息。
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
label1.Text = i.ToString();
Application.DoEvents();
}
}
測試了一下,沒有Application.DoEvents()的時候,Label基本處於假死機狀態,最後顯示一個9999,加上後會數字變換正常顯示。
從這個測驗後DoEvents的功能,應該DoEvents就好比實現了進程的同步。在不加的時候,因為優先級的問題,程序會執行主進程的代碼,再執行別代碼,而加了以後就可以同步執行。