考虑下面的代码在调用异步异步方法和的TaskScheduler /伺机
async Task<int> foo()
{
await Task.Delay(1000);
return 42;
}
...
// OPTION 1
Task t = Task.Factory.StartNew(foo,
CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default);
t.Wait();
...
// OPTION 2
Task t = foo();
t.Wait()
的问题
是哪两个呼叫选项之间的实质性区别?
在选项1.假设我重写默认的TaskScheduler。等待foo方法 - 将使用哪个TaskScheduler?它会使用默认还是传递给父任务的参数?
选项2从来没有开始一个线程? –
@亨克它启动并执行 – Boris
但不是在一个线程。 –