在使用之前先了解一些知識。
1、backgroundworker
作用:
主要用在單獨的執行緒上執行操作。backgroundworker
(ui)
似乎處於停止響應狀態。如果您需要能進行響應的使用者介面,而且面臨與這類操作相關的長時間延遲,則可以使用 backgroundworker類方便地解決問題。
2、backgroundworker
常用屬性:
名稱
說明
cancellationpending
指示應用程式是否已請求取消後台操作即(
是否正在停止中)。
isbusy
獲取乙個值,指示 backgroundworker 是否正在執行非同步操作。
workerreportsprogress
該值指示 backgroundworker 能否報告進度更新。
workersupportscancellation
該值指示 backgroundworker 是否支援非同步取消。
3、backgroundworker
常用事件:
控制項 名稱
說明 textbox
txtselect
用於顯示被選擇檔案的路徑
button
btnselectfile
用於選擇檔案
textbox
txtresult
用於顯示後台程式執行的結果
progressbar
pgbvalue
用於顯示背景程式執行的結果
button
btnrun
用於執行背景程式
button
btncancel
用於取消正在執行的背景程式
backgroundworker
bgwworker
用於後台執行程式
4、注意:
執行runworkerasync()
方法會觸發dowork事件
執行reportprogress()方法會觸發progresschanged事件
5、使用過程:
5.1 在窗體中加入控制項
5.2 加入
backgroundworker
的事件5.3 在dowork事件的方法中呼叫需要執行的方法
5.4 在progresschanged事件的方法中顯示進度
5.5 在runworkercompleted事件的方法中顯示被執行方法的結果
6、程式碼:
6.1 程式碼中的控制項說明:
控制項 名稱
說明textbox
txtselect
用於顯示被選擇檔案的路徑
button
btnselectfile
用於選擇檔案
textbox
txtresult
用於顯示後台程式執行的結果
progressbar
pgbvalue
用於顯示背景程式執行的結果
button
btnrun
用於執行背景程式
button
btncancel
用於取消正在執行的背景程式
6.2程式碼(下面程式碼作用是將檔案轉成swf):
using system.componentmodel;
using
system.io;
namespace
backgroundworkerdemo
//////
被選擇的檔案
///
string
sfile =""
;///
///progressbar的值
///
intiprogressvalue =1
;string fs_filename =""
;///
///得到轉換後檔案在伺服器的絕對路徑
///
string fs_convertedfilename =""
;///
///得到選項選擇的結果(0為瀏覽)
///
intinte***ceoptions =0
;///
///選擇檔案
///
///
///
void
btnselectfile_click(
object
sender, eventargs e)
}///
///「執行背景程式」按鈕事件的方法
///
///
///
void
btnrun_click(
object
sender, eventargs e)
//////
「取消背景程式」按鈕事件的方法
///
///
///
void
btncancel_click(
object
sender, eventargs e)
}///
///開始執行後台操作時
///
///
///
void
bgwworker_dowork(
object
sender, doworkeventargs e)
}///
///背景程式進度方法
///
///
///
void
bgwworker_progresschanged(
object
sender, progresschangedeventargs e)
//////
背景程式執行完成事件方法
///
///
///
void
bgwworker_runworkercompleted(
object
sender, runworkercompletedeventargs e)
//////
執行將檔案轉換成flash程式(此處引用了print2flash控制項)
///
///
private
bool
runprint2falsh()
catch
(exception ex)
return
sretrun;}}
}
BackgroundWorker控制項使用(一)
backgroundworker控制項簡介 所屬命名空間 system.componentmodel 1 常用屬性 cancellationpending 獲取乙個值,指示應用程式是否已經請求取消後台操作。如果應用程式已經請求取消後台操作,則為true 否則為false,預設為false。如果can...
BackgroundWorker控制項
在我們的程式中,經常會有一些耗時較長的運算,為了保證使用者體驗,不引起介面不響應,我們一般會採用多執行緒操作,讓耗時操作在後台完成,完成後再進行處理或給出提示,在執行中,也會時時去重新整理介面上的進度條等顯示,必要時還要控制後台執行緒中斷當前操作。程式執行步驟 1 呼叫backgroundworke...
c 中BackGroundWorker控制項
一 backgroundworker工作步驟 1.向窗體中拖入乙個backgroundworker控制項。2.在某個方法或者事件中,呼叫backgroundworker的runworkerasync 方法。3.該方法為非同步操作,將自動引發backgroundworker的dowork事件。4.呼叫...