記得第一次使用Application.DoEvents()是爲了在加載大量數據時可以有一個數據加載的提示,不至於系統出現假死的現象,當時也沒有深刻的去研究他的原理是怎樣的,結果在不少地方都用上了Application.DoEvents(),今天看到了關於這方面的一些文章,知道我之前有些用法是不當的,有些地方須要慎用Application.DoEvents()。
首先咱們先看看在循環比較大的程序中,它的做用仍是不錯的,起到了一個實時響應的效果,例如:事件
for (int q = 0; q < 1000000; q++)
{
textBox1.Text = q.ToString();
Application.DoEvents();//實時響應文本框中的值
}io
若是沒有加上 DoEvents的話,因爲循環時間會比較久就會出現假死的狀態,並且程序不能處理其餘的事件。而若是加上DoEvents的話就會對文本框的值實時響應,給用戶帶來較好的用戶體驗,但是DoEvents也帶來了效率上的問題,處理一樣的一個事件調用了DoEvents後效率下降了好幾倍,這也是爲何要慎用的緣由了效率