Nito.AsyncEx.TaskCompletionSourceExtensions
public static bool TryCompleteFromCompletedTask<TResult, TSourceResult>(this TaskCompletionSource<TResult> this, Task<TSourceResult> task) where TSourceResult : TResult
public static bool TryCompleteFromCompletedTask<TResult>(this TaskCompletionSource<TResult> this, Task task, Func<TResult> resultFunc)