public static class BackgroundWorkerHelper { public static void Run(DoWorkEventHandler doWork, RunWorkerCompletedEventHandler completed = null, ProgressChangedEventHandler progressChanged = null) { using (var backgroundWorker = new BackgroundWorker()) { backgroundWorker.DoWork += doWork; if (completed != null) backgroundWorker.RunWorkerCompleted += completed; if (progressChanged != null) { backgroundWorker.WorkerReportsProgress = true; backgroundWorker.ProgressChanged += progressChanged; } backgroundWorker.RunWorkerAsync(); } } } public static class BackgroundWorkerHelperOrgainal { public static BackgroundWorker backgroundWorker { get; set; } public static void Run(DoWorkEventHandler doWork, RunWorkerCompletedEventHandler completed = null, ProgressChangedEventHandler progressChanged = null) { backgroundWorker = new BackgroundWorker(); backgroundWorker.WorkerReportsProgress = true; backgroundWorker.WorkerSupportsCancellation = true; backgroundWorker.DoWork += doWork; if (completed != null) backgroundWorker.RunWorkerCompleted += completed; if (progressChanged != null) { backgroundWorker.WorkerReportsProgress = true; backgroundWorker.ProgressChanged += progressChanged; } if (!backgroundWorker.IsBusy) backgroundWorker.RunWorkerAsync(); } }
原文:https://www.cnblogs.com/wangchuang/p/11041696.html