首页 > 解决方案 > .NET 异步/等待,是否收集了变量垃圾?

问题描述

在玩AngleSharp时,我面临着一种异步/等待的行为,我只能将其归因于垃圾收集器。

以下代码不打印任何内容,但调试器声明document.Title具有 value Google

static async Task Main(string[] args)
{
    var config = Configuration.Default.WithDefaultLoader();
    var context = BrowsingContext.New(config);
    var document = await context.OpenAsync("https://www.google.com/");
    Console.WriteLine("Title: {0} ", document.Title);
} 

但是,如果我将属性保存在一个变量中,它会像我期望的 print 那样工作Title: Google

static async Task Main(string[] args)
{
    var config = Configuration.Default.WithDefaultLoader();
    var context = BrowsingContext.New(config);
    var document = await context.OpenAsync("https://www.google.com/");
    var title = document.Title;
    Console.WriteLine("Title: {0} ", title);
} 

这是正确的方法吗?

标签: c#.netasync-awaitanglesharp

解决方案


推荐阅读