Como concluir o TaskCompletionSource.Task usando TaskScheduler específico

Como fazer a conclusão deTaskCompletionSource.Task acontecer em específicoTaskSchedulerquando eu ligoTaskCompletionSource.SetResult?

Atualmente, estou usando a ideia que emprestei deesta postagem:

static public Task<TResult> ContinueOnTaskScheduler<TResult>(
    this Task<TResult> @this, TaskScheduler scheduler)
{
    return @this.ContinueWith(
        antecedent => antecedent,
        CancellationToken.None,
        TaskContinuationOptions.ExecuteSynchronously,
        scheduler).Unwrap();
}

Então, sempre que eu voltariaTaskCompletionSource.Task para o chamador, agora voltoTaskCompletionSource.Task.ContinueOnTaskScheduler(scheduler) em vez de.

É possível, de alguma forma, evitar esse outro nível de indireção deContinueWith?

questionAnswers(1)

yourAnswerToTheQuestion