BackgroundWorker控制項使用方法

2021-05-09 11:03:21 字數 3495 閱讀 1646

在使用之前先了解一些知識。

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.呼叫...