/** * * @date 2014-10-17 * * @author 邓尹平 * * @par 成员列表类 说明 * 主要负责管理成员 提供搜索\排序和操作的方法 * * @par 版权声明 * 深圳市多元世纪信息技术有限公司 版权所有 * * @see 使用此类时参照一些其他类可以写在这里 * * @todo 该类有待完成的任务 一条条列出 完成一条删除一条 * * @bug 该类已知的Bug一条条列出 完成一条删除一条 * */ using System; using System.Threading.Tasks; using System.Windows; namespace Muchinfo.PC.Common.Extensions { public static class ThreadExtensions { public static Task TryStartNew(this TaskFactory factory, Action action, Action actionBusy) { return factory.StartNew(() => { try { action(); } catch (Exception ex) { Application.Current.Dispatcher.BeginInvoke(new Action(() => { throw ex; })); } finally { Application.Current.Dispatcher.BeginInvoke(new Action(() => { if (actionBusy != null) actionBusy(); })); } }); } public static Task TryStartNew(this TaskFactory factory, Action action) { return factory.StartNew(() => { try { action(); } catch (Exception ex) { Application.Current.Dispatcher.BeginInvoke(new Action(() => { throw new Exception(ex.Message); })); } }); } } }