Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用异步API调用好吗?_C#_Api_Asynchronous_Httpclient - Fatal编程技术网

C# 使用异步API调用好吗?

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

我想知道下面的代码是否在等待异步api调用时执行下一条语句?如果是这样,那么该值将为null,并可能导致null异常?我这样做对吗

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表示您要等到它完成,但是线程可能会在另一个上下文(如果有)上执行另一个处理。请澄清您的问题。是否询问异步调用是否等待完成?等待等待。故事的结尾请看一看此线程: