Как сделать 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
?