BackgroundWorker DoWork事件調用多次的問題

 

BackgroundWorker backWork = new BackgroundWorker()

            {

                WorkerReportsProgress = false,

                WorkerSupportsCancellation = true

            };

            backWork.DoWork += backWork_DoWork;

如上代碼,backWork.DoWork += backWork_DoWork 註冊BackgroundWorker 後臺事件

如果註冊方法被調用多次,則backWork_DoWork事件會被調用多次;

解決方案一:

在任務完成後註銷DoWork事件;

?

BackgroundWorker backWork = new BackgroundWorker()

{

      WorkerReportsProgress = false,

      WorkerSupportsCancellation = true

};

backWork.DoWork += backWork_DoWork;

backWork.RunWorkerCompleted += (sender,e)=>{

    backWork.DoWork -= backWork_DoWork;

};

backWork.RunWorkerAsync();

解決方案二:

在構造或者初始化中註冊DoWork事件

發佈了51 篇原創文章 · 獲贊 29 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章