在使用之前先了解一些知識。
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):