示例代码:
PT_USER_INFO user = new PT_USER_INFO(); IList<TES_COMBAT_TASK> taskList = new List<TES_COMBAT_TASK>(); BackgroundWorker worker = BackgroundWorker(); worker.DoWork += (s,e) => { user = HI.Get<Cache.ICacheService>().UserCache.GetCurrentUserInfo(); taskList = HI.Get<ITaskService>().GetCombatTaskByUserIDUnfinished(user.ID.ToString()); }; worker.RunWorkerCompleted += (s,1)"> { try { taskListView.ItemsSource = taskList; } catch { } }; worker.RunWorkerAsync();
BackgroundWorker封装:
using System; System.Collections.Generic; System.ComponentModel; System.Linq; 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 name="errorAction">错误处理</param> static void Run(Action doWork,Action workCompleted,Action<Exception> errorAction) { bool isDoWorkError = false; Exception doWorkException = null; BackgroundWorker worker = BackgroundWorker(); worker.DoWork += (s,1)"> { { if (doWork != ) doWork(); } (Exception ex) { isDoWorkError = true; doWorkException = ex; } }; worker.RunWorkerCompleted += (s,1)">if (!isDoWorkError) { { if (workCompleted != ) workCompleted(); } (Exception ex) { if (errorAction != ) errorAction(ex); } } else) errorAction(doWorkException); } }; worker.RunWorkerAsync(); } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。