C# 使用异步API调用好吗?
我想知道下面的代码是否在等待异步api调用时执行下一条语句?如果是这样,那么该值将为null,并可能导致null异常?我这样做对吗C# 使用异步API调用好吗?,c#,api,asynchronous,httpclient,C#,Api,Asynchronous,Httpclient,我想知道下面的代码是否在等待异步api调用时执行下一条语句?如果是这样,那么该值将为null,并可能导致null异常?我这样做对吗 var response = await pl_httpClient.GetAsync("api/GetInfo?CardNo=" + CardNo); if (!response.IsSuccessStatusCode) { return response.StatusCode); } InfoModel infoModel = await respon
var response = await pl_httpClient.GetAsync("api/GetInfo?CardNo=" + CardNo);
if (!response.IsSuccessStatusCode)
{
return response.StatusCode);
}
InfoModel infoModel = await response.Content.ReadAsAsync<InfoModel>();
if(infoModel == null){ return "Card number is invalid"; }
if (infoModel.ExpiryDate < DateTime.Now.Date) { return "Expired Card Number"; }
if (!infoModel.MemberStatus.Equals("1")) { return "Inactive Card Number"; }
方法是wait暂停方法而不是线程。对于这样的代码:
var response = await pl_httpClient.GetAsync("api/GetInfo?CardNo=" + CardNo);
if (!response.IsSuccessStatusCode)
整个方法在等待语句处暂停,直到下载完成。然后该方法继续执行,设置响应变量,然后继续检查响应。IsSuccessStatusCode。await表示您要等到它完成,但是线程可能会在另一个上下文(如果有)上执行另一个处理。请澄清您的问题。是否询问异步调用是否等待完成?等待等待。故事的结尾请看一看此线程: