C# .NET async/await,是否已回收变量垃圾?
在玩游戏时,我面临着一种只能归因于垃圾收集器的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
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的。