首页 > 解决方案 > 如何在 .NET Core 中正确处理异步方法

问题描述

我希望检索网站响应并将点发送到屏幕,同时这样做。

我无法使用下面的代码这样做。我确定我在做一些相当愚蠢的事情,寻找任何见解..

Console.Write("Doing Task...");
HttpClient web = new HttpClient();
Task<HttpResponseMessage> resp = web.GetAsync("http://localhost",
    HttpCompletionOption.ResponseContentRead);
resp.RunSynchronously(); //Doesn't Work
resp.Start(); //Doesn't Work
while (resp.Status != TaskStatus.RanToCompletion)
{
    Write.Operation(".");
    Thread.Sleep(500);
}
Console.Write("Done!");

标签: c#task-parallel-library.net-core-3.1

解决方案


您可以像下面的示例一样使用 async/await 来捕获从 .NET Core 中的服务器返回的任何数据:

static async Task Main(string[] args)
{
  using var httpClient = new HttpClient();
  var result = await client.GetAsync("http://localhost");
  Console.WriteLine(result.StatusCode);
}

推荐阅读