C# 调用异步方法

C# 调用异步方法,c#,.net,asp.net-mvc,asynchronous,async-await,C#,.net,Asp.net Mvc,Asynchronous,Async Await,我正在尝试使用下面的wait操作符调用异步方法SendParkInfo方法 wait Task.whenay(公园列表)和等待任务。何时(停车场信息) parkInfo具有SendParkInfo方法对象 这是我代码的一部分 public async Task<AvailableParksResponse> GetAvailableParks(IEnumerable<string> parkRegionList) { // var

我正在尝试使用下面的
wait
操作符调用异步方法
SendParkInfo
方法

wait Task.whenay(公园列表)
等待任务。何时(停车场信息)

parkInfo
具有
SendParkInfo
方法对象

这是我代码的一部分

    public async Task<AvailableParksResponse> GetAvailableParks(IEnumerable<string> parkRegionList)
    {
    //
        var parkList = parkRegionList.Select(x => SendParkInfo(x)).ToList();
        var parkListTask = await Task.WhenAny(parkList);
        response.ParkInfoList = new List<Task<ParkInfo>> { parkListTask };

        var parkInfo = SendParkInfo(id);
        var parkTask = await Task.WhenAny(parkInfo);
        response.ParkInfo = new List<Task<ParkInfo>> { parkTask };

    //
    }

    public virtual async Task<ParkInfo> SendParkInfo(string id) 
    {
    //
        var apiResponse = await apiClient.GetAsync(RequestUri + id);
    //
    }
公共异步任务GetAvailableParks(IEnumerable parkRegionList)
{
//
var parkList=parkRegionList.Select(x=>SendParkInfo(x)).ToList();
var parkListTask=wait Task.whenay(parkList);
response.ParkInfoList=新列表{parkListTask};
var parkInfo=SendParkInfo(id);
var parkTask=等待任务.WhenAny(parkInfo);
response.ParkInfo=新列表{parkTask};
//
}
公共虚拟异步任务SendParkInfo(字符串id)
{
//
var apiResponse=await apiClient.GetAsync(RequestUri+id);
//
}
是否可以像我呼叫时那样呼叫
SendParkInfo
,然后使用
wait
操作员执行
Task.WhenAny
方法。或者有没有更好的方法调用
Async SendParkInfo
方法

如有任何帮助或建议,将不胜感激

提前感谢
任务。WhenAny()
将返回一个
任务,当传递到
WhenAny()
的任务列表中至少有一项已完成时,该任务被视为已完成。如果希望在处理完成时以增量方式返回数据,这通常是一个合适的选项

P>可选的,如果您的意图是在所有异步任务完成后只返回一个结果,请考虑<代码>任务。当Ar())/> > < /P> < P> <代码>任务。当())/代码>将返回<代码>任务> /代码>当任务列表中的至少一个项目传递到<代码>何时()(<)/代码>已完成时,该任务被认为已完成。如果希望在处理完成时以增量方式返回数据,这通常是一个合适的选项


另一方面,如果您的意图是在所有异步任务完成后只返回一个结果,请考虑<代码>任务。当Aln()> /P>这里似乎有一些编译问题。您试图将

IEnumerable parkList
重新定义为
IList
,这是故意的吗?@NathanTaylor抱歉,我误解了您的问题。response.ParkInfoList类似于公共IEnumerable ParkInfo{get;set;}您的示例太少了。GetAvailableParks中的id来自哪里?如何使用AvailableParkResponse?拥有停车场列表,但只返回第一个完成的停车场,这有什么意义?
任务。WhenAny()
需要一组任务,但您将其与单个
任务一起使用,并将
发送停车场信息(id)
的结果传递给它。为什么需要使用WhenAny?您不能等待SendParkInfo?这里似乎有一些编译问题。您试图将
IEnumerable parkList
重新定义为
IList
,这是故意的吗?@NathanTaylor抱歉,我误解了您的问题。response.ParkInfoList类似于公共IEnumerable ParkInfo{get;set;}您的示例太少了。GetAvailableParks中的id来自哪里?如何使用AvailableParkResponse?拥有停车场列表,但只返回第一个完成的停车场,这有什么意义?
任务。WhenAny()
需要一组任务,但您将其与单个
任务一起使用,并将
发送停车场信息(id)
的结果传递给它。为什么需要使用WhenAny?你不能在SendParkInfo上等待吗?