2014年5月2日 星期五

C# 好用的DoEvent ,winForm

一般我們用winform  當跑一個for 迴圈 為單一執行緒時,你按下按鈕,就回不了頭了。
一定要做完迴圈,或是出錯才能停止。
當今天我們想要停止,又不想使用多執行緒時,就能使用DoEvent 作為替代方案!

首先你要了解什麼是Doevent ,就是當執行到
 Application.DoEvents();   
的時候,系統就會暫時把頁面還給你,再繼續做
(
按下開始(跑迴圈)

迴圈內遇到DoEvent,把目前狀態顯示在頁面上,在繼續往下跑迴圈。
這時候,頁面上就可以接收你的動作了,
所以當你按停止時,迴圈內就會接收到你說你要停止這個動作,
這時候你就可以執行跳出迴圈!  
)


先設定一個全域變數

bool _停止 =false;

 for (int i = 0; i < 9999999; i++)
            {
                Application.DoEvents();
                if (_停止 == true)
                {
                    _停止 = false;
                    break;
                }
            }

就是這樣,完成了!  
操作的時候,看起來就像是多執行緒一樣,其實他還是單執行緒。

沒有留言:

張貼留言