[英]How to return Task output from an anonymous method?
我有這種方法:
public async Task Method1Async()
{
var foo = 1;
var bar = 100;
List<Task> tasks = new List<Task>();
for (int i = 0; i < 10; i++)
{
// add below code here
}
await Task.WhenAll(tasks);
}
我想將此代碼添加到上述tasks
,並等待所有tasks
完成:
// do something
await Method2Async(foo, bar);
// do something else
我怎樣才能做到這一點? 謝謝..
我試過了,但是Task.WhenAll
永遠等待着:
public async Task Method1Async()
{
var foo = 1;
var bar = 100;
List<Task> tasks = new List<Task>();
for (int i = 0; i < 10; i++)
{
tasks.Add(new Task(async () =>
{
// do something
await Method2Async(foo, bar);
// do something else
}
}
await Task.WhenAll(tasks);
}
您可以直接添加Task
:
tasks.Add(Method2Async(foo, bar));
如果要解決此問題,可以構造一個異步lambda並調用它:
for(int i = 0; i < 10; ++i) {
Func<Task> f = async () => {
//do something
await Method2Async(foo, bar);
//do something else
}
tasks.Add(f());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.