c BackgroundWorker的基本用法

2021-07-29 20:37:58 字數 1654 閱讀 2548

**

這也是今天討論的話題。取消是預設就支援的,而暫停則預設不支援。但通過manualresetevent可以對其進行干預。

using system;  

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.threading;

namespace backgroundworkderpausesample

void form1_load(object sender, eventargs e)

void worker_progresschanged(object sender, progresschangedeventargs e)

void worker_runworkercompleted(object sender, runworkercompletedeventargs e)

} void worker_dowork(object sender, doworkeventargs e)

e.cancel = true;

return;

} //如果manualresetevent的初始化為終止狀態(true),那麼該方法將一直工作,直到收到reset訊號。然後,直到收到set訊號,就繼續工作。

manualreset.waitone();

//反之亦然

thread.sleep(500);

worker.reportprogress(i+1);

} }

private

void

btstart_click(object sender, eventargs e)

private

void

btcancel_click(object sender, eventargs e)

private manualresetevent manualreset = new manualresetevent(true);

private

void

btpause_click(object sender, eventargs e)

else

} }

}

這個程式執行的效果大致如下

一。正常狀態

二。暫停狀態

三。恢復狀態

作為演示,**比較簡單,沒有對worker的一些狀態進行判斷以及按鈕相應的設定。僅供參考

C BackgroundWorker的簡單使用

backgroundworker可用於啟動後台執行緒,避免出現介面假死狀態 注 介面假死狀態 例如執行乙個比較耗時的操作 cpu密集運算 在該操作執行完之前去操作介面,會出現介面停止響應的情況下面是乙個簡單的例子 1 static void main string args 26 private s...

sharedPreference的基本用法

android儲存資料的形式主要有四種 1 sharedpreference,是乙個系統定義好的xml檔案 2 檔案系統 3 sqlite 4 網路儲存 這裡是sharedpreference 寫入 1 建立新的sharedpreference sharedpreferences sharedpre...

Spring Integration基本用法

關於spring integration的介紹這裡不需要贅述,現在我們需要實現的是傳送乙個param,裡面有兩個引數datatype和data,datatype是0和1除外的捨棄,剩餘datatype 0的資料往oldchannel通道發,剩餘datatype 1的資料往newchannel通道發,...