单线程任务 Task.Factory.StartNew 封装

单线程任务 Task.Factory.StartNew 封装,第1张

概述代码: using log4net; using SunCreate.CombatPlatform.Security; using System; using System.Collections.G

代码:

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 封装所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存