上个月我提出了以下问题,得知了
然而,Async CTP的当前实现仅提供以下功能:
以下方案是否提供了可接受的高效替代方法?
TaskEx.Yield
的相关内容:
但是,我后来发现该方法实际上将所有后续代码提交给环境中的TaskScheduler
。出于真正的 DI 精神,我们的团队已经同意尽可能避免使用环境实例,因此我想知道是否可以明确指定要使用的TaskScheduler
?
类似以下内容会很好:
public static YieldAwaitable Yield(TaskScheduler taskScheduler)
{
return new YieldAwaitable(taskScheduler);
}
然而,Async CTP的当前实现仅提供以下功能:
public static YieldAwaitable Yield()
{
return new YieldAwaitable(SynchronizationContext.Current ?? TaskScheduler.Current);
}
以下方案是否提供了可接受的高效替代方法?
await Task.Factory.StartNew(() => { }, CancellationToken.None, TaskCreationOptions.None, this.TaskScheduler);
TaskScheduler
是可以的。 - svick