So vervollständigen Sie TaskCompletionSource.Task mithilfe eines bestimmten TaskSchedulers
Wie mache ich die Vervollständigung vonTaskCompletionSource.Task
passieren auf bestimmteTaskScheduler
, wenn ich anrufeTaskCompletionSource.SetResult
?
Momentan verwende ich die Idee, die ich ausgeliehen habedieser Beitrag:
static public Task<TResult> ContinueOnTaskScheduler<TResult>(
this Task<TResult> @this, TaskScheduler scheduler)
{
return @this.ContinueWith(
antecedent => antecedent,
CancellationToken.None,
TaskContinuationOptions.ExecuteSynchronously,
scheduler).Unwrap();
}
Also, wann immer ich wiederkommen würdeTaskCompletionSource.Task
zum anrufer kehre ich jetzt zurückTaskCompletionSource.Task.ContinueOnTaskScheduler(scheduler)
stattdessen.
Ist es möglich, dies irgendwie zu vermeiden, eine andere Ebene der Indirektion vonContinueWith
?