gpt4 book ai didi

C#等待使用

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:56 26 4
gpt4 key购买 nike

我尝试使用 Get web page using HtmlAgilityPack.NETCore 将网页加载到我的程序中.问题是调试直接跳出第一个 Using 语句,所以代码和第二个 using 根本没有被调用。没有异常或其他东西被抛出。程序以退出代码 0 结束我究竟做错了什么?我正在使用 .net Core 2.2

HttpClient client = new HttpClient();
List<string> htmlContent = new List<string>();
using (var response = await client.GetAsync(URL))
{
using (var content = response.Content)
{
var result = await content.ReadAsStringAsync();
var document = new HtmlDocument();
document.LoadHtml(result);
foreach (HtmlNode node in document.DocumentNode.SelectNodes("//text()"))
{
htmlContent.Add(node.InnerText);
}
}
}

最佳答案

Program ends with exit code 0

初次学习async时的两条规则:

  1. Avoid async void; use async Task instead .
  2. await 您所有的任务。因此,如果您调用返回 Task 的方法,请确保 await 它。

随着您在 async 中的成长,这两条规则都可以有所改变。但是按照上述规则学习async要容易得多。

因此,您发布的代码应该在 async Task 方法中。调用方法应该await那个任务,然后是一个async Task方法,等等。一直回到Main,这应该是一个async Task Main method .请注意,这是 C# 7.1 语言功能,因此如果您使用 VS2017 而不是 VS2019 创建此项目,则需要 set the language version ,例如,latest

关于C#等待使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55940948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com