考慮下面的代碼在調用異步異步方法和的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
但不是在一個線程。 –