首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对多个任务使用异步/等待

对多个任务使用异步/等待
EN

Stack Overflow用户
提问于 2012-09-09 16:40:05
回答 3查看 327.2K关注 0票数 474

我使用的API客户端是完全异步的,也就是说,每个操作要么返回Task,要么返回Task<T>,例如:

代码语言:javascript
复制
static async Task DoSomething(int siteId, int postId, IBlogClient client)
{
    await client.DeletePost(siteId, postId); // call API client
    Console.WriteLine("Deleted post {0}.", siteId);
}

使用C# 5 async/await运算符,启动多个任务并等待所有任务完成的正确/最有效方法是什么:

代码语言:javascript
复制
int[] ids = new[] { 1, 2, 3, 4, 5 };
Parallel.ForEach(ids, i => DoSomething(1, i, blogClient).Wait());

或者:

代码语言:javascript
复制
int[] ids = new[] { 1, 2, 3, 4, 5 };
Task.WaitAll(ids.Select(i => DoSomething(1, i, blogClient)).ToArray());

由于API客户端在内部使用HttpClient,因此我希望它会立即发出5个HTTP请求,并在每个请求完成时写入控制台。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12337671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档