码迷,mamicode.com
首页 > 其他好文 > 详细

a-second-operation-started-on-this-context-before-a-previous-operation-completed

时间:2019-10-11 14:09:50      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:cond   一个   错误   erb   list   时间   var   his   出错   

  分页统计时出现上述错误,错误写法:

var taskList = query.OrderBy(a => a.Seq).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync();
var taskCount = query.CountAsync();

var list = await taskList;
var count = await taskCount;

  开始觉得既然是异步,那同时执行效率会更高,现实是打脸的。。。好吧,只能换个写法

var list =await query.OrderBy(a => a.Seq).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync();
var count =await query.CountAsync();

  异步等待第一个执行完再执行第二个。那异步的意义是什么呢,这样跟同步花的时间并没有减少,的确,在一次请求中并没有提高效率,提高的只是web程序的吞吐量,异步后将由其它线程执行,web线程可以继续处理新的请求。

  为什么2个同时执行会出错呢?我想应该是dbcontext是线程不安全的原因吧,但有一点奇怪的是本地执行不会报错,而发布后生成环境就经常出现这个错误,这是什么原因还请知道的大神赐教!!!

a-second-operation-started-on-this-context-before-a-previous-operation-completed

标签:cond   一个   错误   erb   list   时间   var   his   出错   

原文地址:https://www.cnblogs.com/shanqiu861001/p/11653776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!