執行緒學習10 BackgroundWorker類

2021-09-06 03:34:42 字數 1378 閱讀 8913

backgroundworker 類

基本概念

注意:此類在 .net framework 2.0 版中是新增的。

backgroundworker 類允許您在單獨的專用線程上執行操作。

如果您需要能進行響應的使用者介面,而且面臨與這類操作相關的長時間延遲,則可以使用 backgroundworker 類方便地解決問題。

使用方法:

可以通過程式設計方式建立 backgroundworker,也可以將它從「工具箱」的「元件」選項卡中拖到窗體上。

如果在 windows 窗體設計器中建立 backgroundworker,則它會出現在元件欄中,而且它的屬性會顯示在「屬性」視窗中。

若要設定後台操作,請為

dowork

事件新增乙個事件處理程式。在此事件處理程式中呼叫耗時的操作。若要啟動該操作,請呼叫

runworkerasync。

若要收到進度更新通知,請對

progresschanged

事件進行處理。若要在操作完成時收到通知,請對

runworkercompleted

事件進行處理。

如果後台操作需要引數,請在呼叫 runworkerasync 時給出引數。在 dowork 事件處理程式內部,可以從 doworkeventargs.argument 屬性中提取該引數。

注意:您必須非常小心,確保在dowork事件處理程式中不操作任何使用者介面物件。而應該通過progresschangedrunworkercompleted事件與使用者介面進行通訊。

示例如下:

多執行緒 10 執行緒副本

threadlocal 執行緒副本的使用 執行緒副本類主要解決的就是,要每個單獨的執行緒,都繫結自己執行緒內部共享的值,可以想象每個執行緒都有自己的 threadlocal 筆記本,這個筆記本上記載著所有該執行緒自身的共享變數 class mythreadlocal public string ge...

10 執行緒池 執行緒排程

執行緒池 第四種 獲取執行緒的方法 執行緒池 乙個executorservice,它使用執行緒池的可能的某個執行緒之一執行每個提交的任務,通常使用 executors 工廠方法配置 executorservice service executors.newfixedthreadpool 5 執行緒池...

10 執行緒文化

1 在 linux2.2 核心中,並不存在真正意義上的執行緒。當時 linux 中常用的執行緒 pthread 實際上是通過程序來模擬的,也就是說 linux 中的執行緒也是通過 fork 建立的 輕 程序,並且執行緒的個數也很有限,最多只能有 4096 個程序 執行緒同時執行。2 linux2.4...