public static void SetResultFromTaskSafe <T>(this TaskCompletionSource <T> taskSource, Func <Task <T> > getTask) { taskSource.SetResultFromTaskSafe(getTask, (ts, taskResult) => ts.SetResult(taskResult)); }