當我們的程式在處理極為耗時的運算時,為了不要讓UI停在那邊等待運算結果
可以使用thread , BackgroundWorker 來分擔UI thread 的工作量
一般來說首先需要註冊DoWork事件的event handle
...
_BackgroundWorker.DoWork += backgroundWorker_StartToWork;
...
|
private void backgroundWorker_StartToWork( object sender, DoWorkEventArgs e){
//statement
}
|
但若想要輸出執行結果的話
可以在DoWork事件的 event handle 裡(backgroundWorker_StartToWork )更新 e.Result的值,並註冊 RunWorkerCompleted 事件的 envent handle,再藉由它取得 e.Result
private void backgroundWorker_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e)
{
//statement
}
|
留言
張貼留言