示例代码:

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();

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();
} }
}

最新文章

  1. 使用finfo_file()函数检测上传图片的类型
  2. 使用Fabric进行crash收集统计
  3. Web性能测试中的几个关键指标
  4. 戴文的Linux内核专题:10配置内核(6)
  5. JS面向对象组件(二)--Javascript原型链
  6. sql server根据日期或者月份查询聚合数据
  7. Jade学习笔记
  8. ASP.NET MVC WebApi 返回数据类型序列化控制(json)
  9. php垃圾回收
  10. DateTimeHelper【日期类型与字符串互转以及日期对比相关操作】
  11. Jmeter API Performance Test
  12. Yii2 console执行定时脚本
  13. IIS10安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。
  14. py2neo的使用(转)
  15. [hdu P1599] find the mincost route
  16. String:(字符串)中常用的方法
  17. 详解CentOS设置163的yum源的过程
  18. MySQL字符集介绍及配置
  19. go语言基础之指针做函数参数
  20. jQuery源码分析--Event模块(1)

热门文章

  1. SpringBoot入门篇--对于JSON数据的返回以及处理二
  2. 529. Minesweeper
  3. 【CentOS 6.5】QtCreator启动时关于dbus-1的错误解决方法
  4. python新里程
  5. Java内存分配及值、引用的传递
  6. win10 修改hosts
  7. 解决no-session延迟加载问题
  8. C#泛型序列化困境
  9. springmvc web.xml配置之 -- ContextLoaderListener
  10. 获取set()和push()方法向值栈放的数据