单线程任务 Task.Factory.StartNew 封装
生活随笔
收集整理的這篇文章主要介紹了
单线程任务 Task.Factory.StartNew 封装
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼:
using log4net; using SunCreate.CombatPlatform.Security; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Threading;namespace SunCreate.CombatPlatform.Client {/// <summary>/// 線程幫助類(處理單線程任務(wù))/// </summary>public class ThreadHelper{private static ILog _log = log4net.LogManager.GetLogger(typeof(ThreadHelper));/// <summary>/// 執(zhí)行 /// 例:ThreadHelper.Run(() => { }, (ex) => { });/// </summary>/// <param name="doWork">在線程中執(zhí)行</param>/// <param name="errorAction">錯(cuò)誤處理</param>public 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 != null) doWork();}catch (Exception ex){_log.Error("ThreadHelper.Run 錯(cuò)誤", ex);if (!SP.Get<IOnlineService>().GetNetStatus()){SP.Get<IUIManager>().Dispatcher.BeginInvoke(new Action(() =>{TaskDialog.Show("連接數(shù)據(jù)庫(kù)失敗,請(qǐng)聯(lián)系系統(tǒng)管理員,給您帶來不便,敬請(qǐng)諒解");}));}else{SP.Get<IUIManager>().Dispatcher.BeginInvoke(new Action(() =>{new WaitingWindow("查詢失敗,請(qǐng)聯(lián)系系統(tǒng)管理員,給您帶來不便,敬請(qǐng)諒解").Show();}));}if (errorAction != null) errorAction(ex);}});return task;}/// <summary>/// 封裝Dispatcher.BeginInvoke /// 例:ThreadHelper.BeginInvoke(this.Dispatcher, () => { }, (ex) => { });/// </summary>/// <param name="errorAction">錯(cuò)誤處理</param>public static void BeginInvoke(Dispatcher dispatcher, Action action, Action<Exception> errorAction = null){dispatcher.BeginInvoke(new Action(() =>{try{action();}catch (Exception ex){_log.Error("ThreadHelper.BeginInvoke 錯(cuò)誤", ex);TaskDialog.Show("加載失敗,請(qǐng)聯(lián)系系統(tǒng)管理員,給您帶來不便,敬請(qǐng)諒解");if (errorAction != null) errorAction(ex);}}));}} } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/s0611163/p/9182523.html
總結(jié)
以上是生活随笔為你收集整理的单线程任务 Task.Factory.StartNew 封装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女子考研期间生娃初试395分 回应外界好
- 下一篇: SpaceX 拼车发射要等两年,一家英国