gpt4 book ai didi

c# - 当我使用 ToListAsync 方法时,线程不起作用

转载 作者:行者123 更新时间:2023-12-03 03:50:49 25 4
gpt4 key购买 nike

我有一个 EF Core 程序。

代码

class EagerLoading
{
public async void load()
{
Console.WriteLine("a");
var teams = await loadTeamsAsync();
Console.WriteLine("c");
}
public async Task<List<Team>> loadTeamsAsync()
{
Console.WriteLine("b");
using (var context = new SchoolContext())
{
return await context.teams.
ToListAsync();
}
}
}
//Entry method
static void Main(string[] args)
{
new EagerLoading().load();
}

输出

a
b

预期

a
b
c

问题

我哪里错了?为什么 Console.WriteLine("c"); 不执行?

最佳答案

您需要在 Main 方法中放置一个 ReadKey 或类似内容,以阻止应用程序退出

Load 是一个async void(应该敲响警钟)并且运行未被观察,反过来,很有可能应用程序在按您预期的方式完成之前退出(或者在本例中写入控制台)。

static void Main(string[] args)
{
new EagerLoading().load();
Console.ReadKey();
}

注意:您应该只在事件处理程序(或逻辑上表示事件处理程序的构造)上的异步无效上使用,它更重要-或者-更少的是它们存在的主要原因

关于c# - 当我使用 ToListAsync 方法时,线程不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60519771/

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