private void Wait(IWorkResult[] preWorkUnitList, IWorkResult <TResult> workResult) { if (!WorkResult.Wait(preWorkUnitList)) { workResult.IsError = true; workResult.ErrorMessage = "前置工作处理出错!"; } }
public IWorkResult <TResult> ExecuteSync(Func <TWorkArgs> args, Action <IWorkResult <TResult> > uiAction, IWorkResult[] preWorkUnitList, WaitMode mode) { IWorkResult <TResult> workResult = new WorkResult <TResult>() { IsError = false, Result = default(TResult) }; if (mode == WaitMode.Default || mode == WaitMode.Bll) { this.Wait(preWorkUnitList, workResult); } if (!workResult.IsError) { try { TResult result = this.workSync(args()); workResult.Result = result; } catch (DevException hsex) { workResult.IsError = true; workResult.HsufErrorNo = hsex.ErrorNo; workResult.ErrorMessage = hsex.Message; } catch (Exception exc) { workResult.IsError = true; workResult.ErrorMessage = exc.Message; } } if (!workResult.IsError) { if (mode == WaitMode.UI) { this.Wait(preWorkUnitList, workResult); } } if (uiAction != null) { try { uiAction(workResult); } catch (Exception exc) { Console.WriteLine(exc.Message); } } workResult.IsComplete = true; return(workResult); }