Как сделать TaskCompletionSource.Task завершенным, используя определенный TaskScheduler

Как сделать доработкуTaskCompletionSource.Task случиться на конкретномTaskSchedulerкогда я звонюTaskCompletionSource.SetResult?

В настоящее время я использую идею, которую позаимствовал уэта почта:

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

Поэтому, когда бы я ни вернулсяTaskCompletionSource.Task звонящему я сейчас вернусьTaskCompletionSource.Task.ContinueOnTaskScheduler(scheduler) вместо.

Можно ли как-то избежать этого другого уровня косвенностиContinueWith?

Ответы на вопрос(1)

Ваш ответ на вопрос