C# .NET async/await,是否已回收变量垃圾?

C# .NET async/await,是否已回收变量垃圾?,c#,.net,async-await,anglesharp,C#,.net,Async Await,Anglesharp,在玩游戏时,我面临着一种只能归因于垃圾收集器的async/await行为 下面的代码不打印任何内容,但调试器声明document.Title具有值Google static async Task Main(string[] args) { var config = Configuration.Default.WithDefaultLoader(); var context = BrowsingContext.New(config); var document = awai

在玩游戏时,我面临着一种只能归因于垃圾收集器的async/await行为

下面的代码不打印任何内容,但调试器声明
document.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/");
    Console.WriteLine("Title: {0} ", document.Title);
} 
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);
} 
但是,如果我将属性保存在变量中,它的工作方式与打印
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/");
    Console.WriteLine("Title: {0} ", document.Title);
} 
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);
} 

这是正确的方法吗?

这是否回答了您的问题?是的,@Jazb。非常感谢。很高兴听到:-)好奇,这个链接到底有什么帮助?您的
Main()。当GC正常工作时,它不会做类似的事情,而且您极不可能在GC中遇到一些错误。要以其他任何方式解释这一点,您需要生成一个复制相同行为而不使用AngleSharp的。