gpt4 book ai didi

c# - EF6 ToListAsync 不运行异步但阻塞线程

转载 作者:行者123 更新时间:2023-11-30 16:53:37 26 4
gpt4 key购买 nike

为了提高我的页面性能,我想异步运行一些查询。
我升级到 EF6 是因为它通过公开异步方法原生支持此功能。
我无法让查询同时触发,所以我将我的代码归结为这个简单的例子:

var sw = new Stopwatch();
sw.Start();
var dummy = context.Set<CA_Event_Person>().Take(200).ToListAsync();
sw.Stop();
Logger.Debug("attempt nr 1 : " + sw.ElapsedMilliseconds);
var result = await dummy;

我的异常(exception)是秒表立即停止,因为我稍后会等待。
然而,我的记录器说秒表上已经过了 5000 毫秒,这意味着调用是同步执行的而不是异步执行的。

任何人都知道我为什么做错了或者我做错了什么?

最佳答案

Anyone got some insight in the why or what I could be doing wrong?

这是应用程序中对 EF 的第一次调用吗?您能否为 EF 模型的内部表示的一次性构建计时?

对于更复杂的 EF 模型,第一次调用的开销很大。但这是一次性的(每个应用域)成本。

最好为多个调用计时(然后丢弃最短和最长的时间)。

关于c# - EF6 ToListAsync 不运行异步但阻塞线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287942/

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