我想在此代码片段中使用匿名方法:
Task.WhenAll(Enumerable.Range(0, 1000).Select(i => async () =>
{
await new System.Net.Http.HttpClient().GetAsync("www.somesite12345.com");
}));
但是“选择”具有“红色摆动”,并且编译器错误显示为:
方法'Enumerable.Select(IEnumerable,Func)'的类型参数不能为 从用法推断。尝试显式指定类型参数。
我知道可以通过调用Lambda中的常规方法来重新编码,但是我想知道是否有办法将其保留为匿名方法?
谢谢。
答案 0 :(得分:2)
将i => async () => {}
替换为async i => {}
但是,如果此方法所需的全部内容为GetAsync
,那么您也可以返回任务并等待Task.WhenAll
:
private async void Window_Loaded(object sender, RoutedEventArgs e)
{
var client = new HttpClient();
await Task.WhenAll(Enumerable.Range(0, 1000).Select(_ => client.GetAsync("http://www.somesite12345.com")));
}