在.Net core中,我有一个查询,想使结果异步,但是程序只是终止而没有任何错误。

代码是这样的:

var query = from row in context.MyTable
            where something == row.something
            select row;
var list = await query.ToListAsync();


如果执行FirstAsync,该程序也会终止,但是如果执行First()或ToList(),则该程序可以正常运行。

我还有许多其他运行良好的查询,并且我认为终止是很残酷的,但找不到其他经历过的终止。

我该如何解决? (现在我只使用ToList)

最佳答案

由于Main函数始终是同步的,因此您的顶层Task应该同步等待:

void Main()
{
    var serviceTask = StartServiceAsync();

    // you cannot do await serviceTask, but only
    serviceTask.Wait();
}


因此,您的服务可能不会失败-它在Main func到达末尾并关闭应用程序时才终止。

关于c# - C#.NET Core linq到实体异步调用终止程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42804752/

10-13 06:55