public Task ContinueWith(Action_Task continuationAction) { var task = new Task(); m_continuation = (t) => { continuationAction(task); task.Complete(); }; if (IsCompleted) { // continuation can start directly Scheduler.Dispatch(Continue); } return(task); }
public Task ContinueWith(Func_Task_Task continuationAction) { Task task = new Task(); m_continuation = (t) => { var newtask = continuationAction(t); newtask.ContinueWith(x => task.Complete()); }; if (IsCompleted) { // continuation can start directly Scheduler.Dispatch(Continue); } return(task); }