我想在一次调用中进行多个异步调用而不使用循环。例如,我想传递一个 URI 列表,并在一次调用中异步检索所有这些 URI。这可以通过 C# 实现吗?
这是一个 example in Java这与我正在寻找的类似。
最佳答案
您可以非常轻松地获取任务列表 - 例如:
var tasks = uris.Select(async uri =>
{
using (var client = new HttpClient())
{
return await client.GetStringAsync(uri)
}
})
.ToList();
请注意,如果您想使用 async/await,则需要 C# 5,而不是 C# 4。如果您使用 Microsoft.Bcl.Async,您仍然可以使用 .NET 4.0。 Nuget 包,但您必须使用 C# 5 编译器。
关于c# - 在 C# 中的单个调用中进行多个异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871962/