/// <summary> /// Decoration that flags a task as being asynchronous and provides the conditions needed to trigger completion and error. /// Automatically decorates with TriggerConditions. /// </summary> /// <param name="task"></param> /// <returns></returns> public static IAsynchronousDecoration IsAsynchronous(this ITask task, ICondition markCompleteCondition, ICondition markErrorCondition) { Condition.Requires(task).IsNotNull(); var rv = task.As<AsynchronousDecoration>(); if (rv == null) rv = new AsynchronousDecoration(task, markCompleteCondition, markErrorCondition); return rv; }
/// <summary> /// Decoration that flags a task as being asynchronous and provides the conditions needed to trigger completion and error. /// Automatically decorates with TriggerConditions. /// </summary> /// <param name="task"></param> /// <returns></returns> public static IAsynchronousDecoration IsAsynchronous(this ITask task, ICondition markCompleteCondition, ICondition markErrorCondition) { Condition.Requires(task).IsNotNull(); var rv = task.As <AsynchronousDecoration>(); if (rv == null) { rv = new AsynchronousDecoration(task, markCompleteCondition, markErrorCondition); } return(rv); }