BackgroundWorker類使用參考

2021-09-21 17:06:59 字數 1322 閱讀 4472

backgroundworker是基於事件非同步模式的乙個實現。它具有以下特徵:

可協調的退出

安全的更新窗體控制項

**異常到完成事件

報告進度

是乙個控制項,可以在visual studio中直接拖拽使用

主要有3個事件,注意事件發生的時間

dowork

呼叫 runworkerasync 時發生。

progresschanged

呼叫 reportprogress 時發生。

runworkercompleted

當後台操作已完成、被取消或引發異常時發生。

當需要實現進度報告和取消操作時,務必設定下面兩個屬性

backgroundworker1.workerreportsprogress = true;

backgroundworker1.workersupportscancellation = true;

具體**如下:

private

void form3_load(object sender, eventargs e)

private

void backgroundworker1_dowork(object sender, doworkeventargs e)

if (i > 78)

throw

newexception("error"); //丟擲的異常會在completed事件中捕獲

//dothing();    //無論間接還是直接呼叫windowsui控制項,在除錯狀態時會引發異常,但是在執行時卻不引發異常。

thread.sleep(100);

backgroundworker1.reportprogress(i);//更新狀態。

}

}

private

void backgroundworker1_progresschanged(object sender, progresschangedeventargs e)

private

void backgroundworker1_runworkercompleted(object sender, runworkercompletedeventargs e)

private

void btnstart_click(object sender, eventargs e)

private

void btncancel_click(object sender, eventargs e)

private

void dothing()

BackgroundWorker控制項使用方法

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

使用BackgroundWorker解決視窗卡死

使用控制項 backgroundworker 的實質是為該程序新建立乙個執行緒來執行耗時操作。bool changed false private void tabcontrol1 selected object sender,tabcontroleventargs e private void b...

BackgroundWorker控制項使用(一)

backgroundworker控制項簡介 所屬命名空間 system.componentmodel 1 常用屬性 cancellationpending 獲取乙個值,指示應用程式是否已經請求取消後台操作。如果應用程式已經請求取消後台操作,則為true 否則為false,預設為false。如果can...