代码:
using log4net; SunCreate.CombatPlatform.Security; System; System.Collections.Generic; System.linq; System.Text; System.windows.Threading;namespace SunCreate.CombatPlatform.ClIEnt{ /// <summary> /// 线程帮助类(处理单线程任务) </summary> public class ThreadHelper { private static ILog _log = log4net.LogManager.GetLogger(typeof(ThreadHelper)); <summary> 执行 例:ThreadHelper.Run(() => { },(ex) => { }); </summary> <param name="doWork">在线程中执行</param> <param name="errorAction">错误处理</param> static System.Threading.Tasks.Task Run(Action doWork,Action<Exception> errorAction = null) { System.Threading.Tasks.Task task = System.Threading.Tasks.Task.Factory.StartNew(() => { try { if (doWork != ) doWork(); } catch (Exception ex) { _log.Error("ThreadHelper.Run 错误",ex); if (!SP.Get<IOnlineservice>().GetNetStatus()) { SP.Get<iuiManager>().dispatcher.BeginInvoke(new Action(() => { TaskDialog.Show(连接数据库失败,请联系系统管理员,给您带来不便,敬请谅解); })); } else { SP.Get<iuiManager>().dispatcher.BeginInvoke( { new WaitingWindow(查询失败,请联系系统管理员,给您带来不便,敬请谅解).Show(); })); } if (errorAction != ) errorAction(ex); } }); return task; } 封装dispatcher.BeginInvoke 例:ThreadHelper.BeginInvoke(this.dispatcher,() => { },1)">static voID BeginInvoke(dispatcher dispatcher,Action action,1)">) { dispatcher.BeginInvoke( { action(); } ThreadHelper.BeginInvoke 错误加载失败,请联系系统管理员,给您带来不便,敬请谅解); ) errorAction(ex); } })); } }}VIEw Code
总结
以上是内存溢出为你收集整理的单线程任务 Task.Factory.StartNew 封装全部内容,希望文章能够帮你解决单线程任务 Task.Factory.StartNew 封装所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)