欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

C# BackgroundWorker 的使用、封装

发布时间:2025/3/18 C# 69 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C# BackgroundWorker 的使用、封装 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

示例代码:

PT_USER_INFO user = new PT_USER_INFO(); IList<TES_COMBAT_TASK> taskList = new List<TES_COMBAT_TASK>();BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (s, e) => {user = HI.Get<Cache.ICacheService>().UserCache.GetCurrentUserInfo();taskList = HI.Get<ITaskService>().GetCombatTaskByUserIDUnfinished(user.ID.ToString());}; worker.RunWorkerCompleted += (s, e) => {try{taskListView.ItemsSource = taskList;}catch { } }; worker.RunWorkerAsync(); View Code

BackgroundWorker封装:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text;/*** 使用方法:BackWork.Run(() => //DoWork {}, () => //RunWorkerCompleted {}, (ex) => //错误处理 {});*/namespace Utils {/// <summary>/// BackgroundWorker封装/// 用于简化代码/// </summary>public class BackWork{/// <summary>/// 执行/// </summary>/// <param name="doWork">DoWork</param>/// <param name="workCompleted">RunWorkerCompleted</param>/// <param name="errorAction">错误处理</param>public static void Run(Action doWork, Action workCompleted, Action<Exception> errorAction){bool isDoWorkError = false;Exception doWorkException = null;BackgroundWorker worker = new BackgroundWorker();worker.DoWork += (s, e) =>{try{if (doWork != null) doWork();}catch (Exception ex){isDoWorkError = true;doWorkException = ex;}};worker.RunWorkerCompleted += (s, e) =>{if (!isDoWorkError){try{if (workCompleted != null) workCompleted();}catch (Exception ex){if (errorAction != null) errorAction(ex);}}else{if (errorAction != null) errorAction(doWorkException);}};worker.RunWorkerAsync();}} } View Code

 

转载于:https://www.cnblogs.com/s0611163/p/7080127.html

总结

以上是生活随笔为你收集整理的C# BackgroundWorker 的使用、封装的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。