Eve*_*ent 2 c# deadlock async-await
我遇到了一种情况,需要非异步运行单个LINQ 查询。原因:目前异步 EF 调用加载大 blob 的方式仍然存在错误(有关实体框架异步操作需要十倍时间才能完成的更多信息)
因此,修复上述错误的选择是将查询转换为自定义 DbCommand 并异步运行原始 SQL,或者我可以将调用ToListAsync从ToList.
TLDR ---问题:
我知道同步调用异步代码可能会导致死锁(例如query.ToListAsync().Result),但是,在异步方法内部调用 ToList 的非异步版本是否会出现相同的问题?
我知道同步调用异步代码可能会导致死锁(例如
query.ToListAsync().Result),但是,调用异步方法内部的非异步版本是否ToList有相同的问题?
调用同步方法ToList()会阻塞当前线程,无论您是否在异步方法内执行此操作。所以它不会死锁,但会阻塞调用方法。而且您不希望异步阻塞。请记住,一个async方法像任何其他方法一样同步运行,直到它遇到await.
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |