亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

winform+BackgroundWorker 多線程下如何停止和暫停

2019-11-11 02:13:57
字體:
來源:轉載
供稿:網友

本文主要記錄如何利用winform,BackgroundWorker線程控件和PRogressBar進度控件進行開發(這樣啟用工作線程和UI主線程,可以讓進度條能進行更新,避免UI假死),同時支持啟用多個后臺BackgroundWorker,以及支持統一的全局進度條更新,同時支持暫停和停止任務。

下面是定義BackgroundWorker各種事件:

BackgroundWorker  Bworker = new BackgroundWorker();                 Bworker.WorkerReportsProgress = true;Bworker.DoWork += new DoWorkEventHandler(worker_DoWork);Bworker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);Bworker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);Bworker.RunWorkerAsync();

在work_DoWork中調用具體執行的方法,worker_ProgressChanged方法用來實時更新進度條值,worker_RunWorkerCompleted方法用來處理當后臺線程執行完操作后要處理的事情,如更新界面UI進度條等。

剛開始的時候是沒有取消按鈕的,現在看看怎么加上取消按鈕。

BackgroundWorker 是支持取消事件的,主要通過一個button_click事件,調用Bworker .CancelAsync(),然后在worker_DoWork中檢測是否已經取消了:

//檢測是否被取消了if (worker.CancellationPending) {    e.Cancel = true;    break; }

       有了取消,就想起了也需要加上暫停,暫停的功能需要自己實現。其實就是利用ManualResetEvent 允許線程通過發信號互相通信的特點,

1.設定一個全局的變量,  public static ManualResetEvent mre = new ManualResetEvent(false);ManualResetEvent建立時是把false作為start的初始狀態,這個類用于通知另一個線程,讓它等待一個或多個線程。

2.增加一個暫停Pause_Click事件,如果是暫定,則調用 mre.Reset();//暫停當前線程的工作,發信號給waitOne方法,阻塞。

   如果是繼續,則 mre.Set();//繼續某個線程的工作,

   worker_DoWork中檢測mre.WaitOne();這樣就完成了簡單的暫停控制。

     上面還是用單個線程處理事務,速度很慢,CPU,內存,IO都沒有充分的利用起來,所以下面就想到了啟用多線程,充分利用系統資源。

      那么問題來了,如何結合BackgroundWorker使用多線程呢,后來發現其實一個簡單的做法,就是啟用多個BackgroundWorker來啟動業務,當然,對應的ManualResetEvent也需要有多個。(啟用多個BackgroundWorker唯一要注意的是更新全局變量進度的時候,需要針對進度進行加鎖)

 private List<ManualResetEvent> lstManualResets = null; private BackgroundWorker Bworker = null; private static readonly object objLock = new object();
   for (int i = 0; i < nThreadNum; i++)            {                Bworker = new BackgroundWorker();                Bworker.WorkerSupportsCancellation = true;                Bworker.WorkerReportsProgress = true;                Bworker.DoWork += new DoWorkEventHandler(worker_DoWork);                Bworker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);                Bworker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);                lstBworkers.Add(Bworker);                lstManualResets.Add(new ManualResetEvent(true));                Bworker.RunWorkerAsync(i);            }

一個臨時轉換工具的開發過程,記錄下來,如上有什么更好建議或想法,也請大家多多指點。


上一篇:poj1016


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩综合| 欧美激情精品久久久久久久变态| 国产精品人人做人人爽| 国产精品va在线| 高清亚洲成在人网站天堂| 亚洲一区二区三区777| 伊人男人综合视频网| 欧美日韩在线第一页| 中文字幕亚洲一区二区三区五十路| 久久综合久久八八| 日本乱人伦a精品| 欧美极品美女视频网站在线观看免费| 日韩欧美在线中文字幕| 欧美精品久久久久久久久| 亚洲综合精品伊人久久| 日韩成人小视频| 在线观看视频亚洲| 欧美性jizz18性欧美| 久久精品视频在线| 欧美黄色免费网站| 久久久99久久精品女同性| 国产一区二区日韩| 久久久久99精品久久久久| 日韩欧美一区二区在线| 欧美日韩国产页| 国产精品电影网站| 成人妇女免费播放久久久| 在线精品国产成人综合| 日韩视频欧美视频| 精品久久久久久中文字幕大豆网| 中文字幕一区二区精品| 精品视频—区二区三区免费| 亚洲网站在线播放| 精品精品国产国产自在线| 91高清在线免费观看| 亚洲男女自偷自拍图片另类| 欧美视频精品一区| 久久精品青青大伊人av| 欧美日韩精品在线观看| 91免费国产网站| 国产精品99导航| 亚洲电影中文字幕| 欧美人在线视频| 日韩欧美一区二区三区久久| 亚洲欧美精品在线| 欧美日韩精品在线视频| 日韩最新av在线| 日韩精品久久久久久久玫瑰园| 亚洲加勒比久久88色综合| 深夜精品寂寞黄网站在线观看| 久久免费在线观看| 91在线视频精品| 欧美在线视频播放| 久久人人爽人人爽人人片av高请| 亚洲天堂av在线免费| 国产女精品视频网站免费| 国产精品福利在线观看网址| 亚洲第一页中文字幕| 日韩综合视频在线观看| 亚洲精品美女免费| 亚洲欧美综合区自拍另类| 欧美性受xxxx白人性爽| 国产一区私人高清影院| 色偷偷av一区二区三区乱| 欧日韩在线观看| 亚洲欧美激情在线视频| 久久久久久免费精品| 中文字幕九色91在线| 麻豆乱码国产一区二区三区| 色悠悠国产精品| 九九精品视频在线观看| 成人xvideos免费视频| 久久69精品久久久久久国产越南| 久久久久九九九九| 色妞色视频一区二区三区四区| 成人做爽爽免费视频| 亚洲国产精品嫩草影院久久| 91精品国产乱码久久久久久蜜臀| 中文字幕视频在线免费欧美日韩综合在线看| 揄拍成人国产精品视频| 亚洲最新av在线网站| 亚洲乱码一区av黑人高潮| 日韩av高清不卡| 国产成人jvid在线播放| 国内精品模特av私拍在线观看| 精品久久国产精品| 成人午夜两性视频| 精品视频www| 欧美性猛交丰臀xxxxx网站| 欧美精品一区三区| 成人www视频在线观看| 538国产精品视频一区二区| 国产精品老女人精品视频| 91手机视频在线观看| 色樱桃影院亚洲精品影院| 日韩大陆毛片av| 中文字幕视频在线免费欧美日韩综合在线看| 日韩中文字幕在线观看| 4438全国亚洲精品在线观看视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品91免费在线| yellow中文字幕久久| 日韩精品亚洲精品| 午夜精品久久久久久久99热浪潮| 91精品久久久久久久久久入口| 亚洲精品久久久久久久久| 在线观看久久久久久| 中文字幕日韩av| 久久精品久久久久久| 国产一区二区日韩| 色妞在线综合亚洲欧美| 国产欧美日韩最新| 久久久av网站| 国产亚洲欧洲黄色| 青草青草久热精品视频在线观看| 久久久免费高清电视剧观看| 色婷婷av一区二区三区久久| 亚洲毛茸茸少妇高潮呻吟| 成人在线免费观看视视频| 国产免费久久av| 国产亚洲精品美女久久久| 欧美午夜视频在线观看| 欧美裸体xxxxx| 欧美老少做受xxxx高潮| 欧美视频在线观看免费| 亚洲free性xxxx护士白浆| 久久激情五月丁香伊人| 亚洲免费人成在线视频观看| 欧美激情网站在线观看| 欧美高清不卡在线| 欧洲美女7788成人免费视频| 欧美最猛性xxxxx免费| 久久好看免费视频| 亚洲男人天堂2023| 91av在线网站| 成人做爰www免费看视频网站| 亚洲大胆美女视频| 欧美精品久久久久久久免费观看| 中文字幕在线亚洲| 亚洲天堂男人的天堂| 亚洲欧美日韩一区在线| 国产精品成人av性教育| 日韩在线欧美在线国产在线| 91香蕉嫩草影院入口| 久久精品99国产精品酒店日本| 国产日韩欧美夫妻视频在线观看| 九九精品视频在线| 成人国产精品久久久久久亚洲| 亚洲午夜未删减在线观看| 91九色国产视频| 欧美日韩精品中文字幕| 国产亚洲精品久久久久久777| 宅男66日本亚洲欧美视频| 92看片淫黄大片看国产片| 亚洲网站视频福利| 欧美一级大胆视频| 亚洲开心激情网| 亚洲精品美女在线观看播放| 91精品国产91久久久久久不卡| 国内免费精品永久在线视频| 国产69精品久久久| 亚洲第一区中文字幕| 亚洲精品不卡在线| 国产高清在线不卡|