我是否必须等待异步方法?

时间:2016-09-18 23:28:46

标签: c# asynchronous

我使用仅支持异步方法的HttpClient。我是否必须在调用方法中await它们(不是在异步方法本身,我必须等待HttpClient方法中的调用,据我所知)?

我不需要在该项目中进行多线程处理。我会很好地阻止并等待,直到我得到HttpClient的回复,因为我还是需要数​​据。这是一个Console应用程序。

2 个答案:

答案 0 :(得分:3)

不,没有任何要求你await来电。该电话只是向您返回Task<T>,而不是直接返回T。如果您拨打Result上的Task媒体资源:

var result = client.MakeCallAsync().Result;

你在告诉它&#34;我不在乎它是否阻止,我希望我的代码(以及这个线程)在这里等待直到完成。&#34;

答案 1 :(得分:1)

  

我不需要在该项目中进行多线程处理。

async是关于异步的,而不是多线程的。

  

我会很好地阻止并等待,直到我得到HttpClient的响应,因为我还是需要数​​据。这是一个控制台应用程序。

在这种情况下,我只是说保持一切同步。也就是说,使用WebClient代替HttpClient