BackgroundWorker控制項使用(一)

2022-05-04 20:00:19 字數 1824 閱讀 3290

backgroundworker控制項簡介

所屬命名空間:system.componentmodel

1、常用屬性:

①cancellationpending:獲取乙個值,指示應用程式是否已經請求取消後台操作。如果應用程式已經請求取消後台操作,則為true;否則為false,預設為false。如果cancellationpending為true,則已對backgroundworker呼叫了cancelasync方法。

②isbusy:獲取乙個值,指示backgroundworker是否正在執行非同步操作。如果backgroundworker正在執行非同步操作,則為true;否則為false。呼叫runworkerasync時,backgroundworker將啟動非同步操作。

③workerreportsprogress:獲取或設定乙個值,該值指示backgroundworker能否報告進度更新。若支援進度更新,則為true;否則為false,預設為false。當該屬性為true時,使用者**可以呼叫reportprogress方法來引發progresschanged事件。可在backgroundworker屬性中設定,也可在**中編寫bgw.workerreportsprogress = true;

④workersupportscancellation:獲取或設定乙個值,該值指示backgroundworker是否支援非同步取消。若支援取消,則為true,;否則為false,預設為false。當該屬性為true時,可以呼叫cancelasync方法中斷後台操作。可在backgroundworker屬性中設定,也可在**中編寫bgw.workersupportscancellation = true;

2、常用方法:

①cancelasync():請求取消掛起的後台操作。cancelasync 提交終止掛起的後台操作的請求,並將cancellationpending屬性設定為true。

②dispose():釋放由component使用的所有資源。

③ondowork(doworkeventargs):引發dowork事件。

④onprogresschanged(progresschangedeventargs):引發progresschanged事件。

⑤onrunworkercompleted(runworkercompletedeventargs):引發runworkercompleted事件。

⑥reportprogress(int32)、reportprogress(int32,object):引發progresschanged事件。e.g:bgw.reportprogress(percentprogress); 引數percentprogress表示已完成的後台操作所佔的百分比,範圍從0%到100%。

⑦runworkerasync()、runworkerasync(object):開始執行後台操作。e.g:bgw.runworkerasync(argument);引數argument表示要在dowork事件處理程式中執行的後台操作使用的引數。

注意,所傳入的引數最多為乙個,若想傳入多個引數,則將引數封裝到乙個類中,通過類的例項來傳遞;或者若傳入的引數為同一型別,則可以將引數寫進乙個陣列,通過傳入陣列來傳遞。

3、事件:

①disposed:當通過呼叫dispose方法釋放元件時發生。

②dowork:呼叫runworkerasync時發生。在此事件中處理程式中呼叫耗時的操作。

③progresschanged:呼叫reportprogress時發生。在此事件中處理收到進度更新的通知。

④runworkercompleted:當後台操作已完成、被取消或引發異常時發生。在此事件中處理操作完成時收到的通知。

參考自msdn,其他相關詳細見msdn:

BackgroundWorker控制項使用方法

在使用之前先了解一些知識。1 backgroundworker 作用 主要用在單獨的執行緒上執行操作。backgroundworker ui 似乎處於停止響應狀態。如果您需要能進行響應的使用者介面,而且面臨與這類操作相關的長時間延遲,則可以使用 backgroundworker類方便地解決問題。2 ...

BackgroundWorker控制項

在我們的程式中,經常會有一些耗時較長的運算,為了保證使用者體驗,不引起介面不響應,我們一般會採用多執行緒操作,讓耗時操作在後台完成,完成後再進行處理或給出提示,在執行中,也會時時去重新整理介面上的進度條等顯示,必要時還要控制後台執行緒中斷當前操作。程式執行步驟 1 呼叫backgroundworke...

c 中BackGroundWorker控制項

一 backgroundworker工作步驟 1.向窗體中拖入乙個backgroundworker控制項。2.在某個方法或者事件中,呼叫backgroundworker的runworkerasync 方法。3.該方法為非同步操作,將自動引發backgroundworker的dowork事件。4.呼叫...