安全背景執行緒 BackgroundWorker
張貼日期:2011/2/15 上午 02:14:44
屬性:
WorkerReportsProgress 用來支援回應進度.改為true
WorkerSupportsCancellation 用來支援取消行為.改為true
行為:
RunWorkerAsync() 用來啟動此元件
CancelAsync() 用來停止元件.
會傳給執行中的函式一個停止信號.但該函式必須要寫接收信號的內容.否則無法停止.最好每個有迴圈的地方都寫.
if( bk.CancellationPending ) { //這裡判斷一下是否用戶要求取消後台進行,並可以儘早退出。
return false;
}
//基本背景函式的寫法.必須回傳佈林值.f失敗.t成功
private bool line_high( BackgroundWorker bk ) {
if( bk.CancellationPending ) { //這裡判斷一下是否用戶要求取消後台進行,並可以儘早退出。
return false;
}
}
事件:
DoWork 用來指定要處理的背景程式.重要!!
private void bkw_DoWork( object sender , System.ComponentModel.DoWorkEventArgs e ) {
switch( gb.ls_out_type ) { //內部使用swich指定要動作的函式.
case "圖表海拔":
line_high( bkw );
break;
case "台灣分佈點":
do_point( bkw );
break;
case "圖表濕度":
break;//
case "台灣網格20公里":
break;
default:
break;
}
}
ProgressChanged 當進度回報動作產生時引發.如有要更新進度.可在此動作
RunWorkerCompleted 當DoWork完成後引發.