C#中慎用Application.DoEvents
阿新 • • 發佈:2018-02-28
span div event AC 事件 pri ++ end tac
private void Add() { for (int i = 0; i < 100; i++) { Button button = new Button(); button.Width = 300; button.Height = 200; panel1.Controls.Add(button); Application.DoEvents();//此處用的話會導致問題 } }private void button1_Click(object sender, EventArgs e) { Add(); } int errorCount = 0; private void timer1_Tick(object sender, EventArgs e) { panel1.Controls.Clear(); Add(); }
如上代碼,100ms的定時器,執行幾分多鐘後就會崩潰,提示StackOverFlow,推測可能是添加Button時隊列裏有新事件,DoEvents引爆導致。
C#中慎用Application.DoEvents