Application.DoEvents()的使用
最近做了一個個人數字圖書館管理系統,因為牽扯到電腦文件的掃描,想做一個實時顯示當前掃面文件的功能,就類似于360文件掃描時的效果,本來打算用多線程來實現,但是方法太多沒有實現,后來在程序中進行控制,由于文件太多,出現了假死現象,就連自己定義好的Timer計時器都出出現了假死,所以這個問題必須解決,隨后在座的過程中,突然發現了Application.DoEvents(),使用了一下,相愛過很好,解決了自己遇到的問題。本文主要把Application.DoEvents()方法做個介紹。
記得第一次使用Application.DoEvents()是為了在加載大量數據時能夠有一個數據加載的提示,不至于系統出現假死的現象,當時也沒有深入的去研究他的原理是怎樣的,結果在很多地方都用上了Application.DoEvents(),今天看到了關于這方面的一些文章,知道我以前有些用法是不當的,有些地方需要慎用Application.DoEvents()。
首先我們先看看在循環比較大的程序中,它的作用還是不錯的,起到了一個實時響應的效果,例如:
for (int q = 0; q < 1000000; q++)
????????????{
????????????????textBox1.Text = q.ToString();
????????????????Application.DoEvents();//實時響應文本框中的值
????????????}
如果沒有加上 DoEvents的話,由于循環時間會比較久就會出現假死的狀態,而且程序不能處理其他的事件。而如果加上DoEvents的話就會對文本框的值實時響應,給用戶帶來較好的用戶體驗,可是DoEvents也帶來了效率上的問題,處理同樣的一個事件調用了DoEvents后效率降低了好幾倍,這也是為什么要慎用的原因了。
總結
以上是生活随笔為你收集整理的Application.DoEvents()的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 椰子是什么颜色?
- 下一篇: 盱眙哪里可以钓到龙虾?