3 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
async Task<int> LongTask1() { ... }
async Task<int> LongTask2() { ... }
...
{
Task<int> t1 = LongTask1();
Task<int> t2 = LongTask2();
await Task.WhenAll(t1,t2);
//now we have t1.Result and t2.Result
}

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
雖然你的Sleep
方法是異步的,但Thread.Sleep
不是。異步的整個(gè)想法是重用單個(gè)線程,而不是啟動(dòng)多個(gè)線程。因?yàn)槟咽褂脤?duì)Thread.Sleep的同步調(diào)用阻止,所以它無(wú)法正常工作。
我假設(shè)這Thread.Sleep
是你想要做的簡(jiǎn)化。您的實(shí)際實(shí)現(xiàn)可以編碼為異步方法嗎?
如果您確實(shí)需要運(yùn)行多個(gè)同步阻塞調(diào)用,請(qǐng)查看我認(rèn)為的其他地方!
- 3 回答
- 0 關(guān)注
- 370 瀏覽
添加回答
舉報(bào)