public static Task <U> OnSuccessWithTask <T, U>(this Task <T> t, Func <T, Task <U> > succesHandler) { return(t.ContinueWithTask <U>(x => { return succesHandler(t.Result); }, true)); }
public static Task <T> OnSuccessWithTask <T>(this Task t, Func <Task <T> > succesHandler) { return(t.ContinueWithTask <T>(x => { return succesHandler(); }, true)); }
public static Task <U> ContinueWithTask <T, U>(this Task <T> t, Func <Task <T>, Task <U> > starter, bool rethrowOnError) { if (!rethrowOnError) { return(t.ContinueWithTask(starter)); } return(t.ContinueWithTask(x => { if (x.Exception != null) { return Task.FromException <U>(x.Exception); } else { return x.ContinueWithTask(starter); } })); }
public static Task <U> ContinueWithIterator <T, U>(this Task <T> t, Func <Task <T>, Action <U>, IEnumerator> routine, bool rethrowOnError) { if (!rethrowOnError) { return(t.ContinueWithIterator(routine)); } return(t.ContinueWithTask(x => { if (x.Exception != null) { return Task.FromException <U>(x.Exception); } else { return x.ContinueWithIterator(routine); } })); }
public static Task ContinueWith <T>(this Task <T> t, Action <Task <T> > func, bool rethrowOnError) { if (!rethrowOnError) { return(t.ContinueWith(func)); } return(t.ContinueWithTask(x => { if (x.Exception != null) { return Task.FromException(x.Exception); } else { return x.ContinueWith(func); } })); }
/// <summary> /// タスクが正常終了したときのみ実行される<see cref="Task.ContinueWithTask{T}"/>。 /// </summary> public static Task OnSuccessWithTask <T>(this Task <T> t, Func <T, Task> succesHandler) => t.ContinueWithTask(x => { return(succesHandler(t.Result)); }, true);
/// <summary> /// タスクが正常終了したときのみ実行される<see cref="Task.ContinueWithTask"/>。 /// </summary> public static Task OnSuccessWithTask(this Task t, Func <Task> succesHandler) => t.ContinueWithTask(x => { return(succesHandler()); }, true);