首页 新闻 会员 周边

Mvc操作队列问题

0
悬赏园豆:20 [待解决问题]
public class A{ 
    private Queue<InverstModel> inverstQueue = new Queue<InverstModel>();
    private static object lockObject = new Object();
    
    public ActionResult B(InverstModelmodel){
         inverstQueue.Enqueue(model);
          lock (lockObject) {
                while (inverstQueue.Count > 0)
                {
                      var _model = inverstQueue.Dequeue();
                      //此处是业务逻辑操作,每个进来的用户都会执行一遍逻辑操作,并且返回逻辑操作结果用户给前台
                 }
         }
    }
}

这里的疑问是很多用户要访问控制器B,我在每个用户访问控制器B的时候,首先加入队列

然后锁住,并且循环队列,那么我应该怎么从控制器进行返回呢?

colyn的主页 colyn | 初学一级 | 园豆:79
提问于:2016-01-22 14:50
< >
分享
所有回答(4)
0
dudu | 园豆:31003 (高人七级) | 2016-01-22 15:07
0

直接return Result 啊

Jeeris | 园豆:160 (初学一级) | 2016-01-22 16:16
0

似乎用不着队列,队列是用于解决文件并发或数据库并发,比如往错误日志里写数据、数据库增删改很频繁的时候,访问控制器是没有并发问题的,而且使用队列的时候不需要加lock的。

碧绿深蓝 | 园豆:177 (初学一级) | 2016-01-22 17:18
0

你这个队列里对于用户访问来说永远都是一个,首先你这个队列不是一个静态变量(即便是静态变量,在分布式环境下,就是多个静态变量),而是一个字段,每个人访问你的action B的时候都会创建一个控制器类A,并且会创建一个队列,而你这个队列对于每个用户而言都是自己的,所以你这队列没有意义!

流年莫逝 | 园豆:247 (菜鸟二级) | 2016-01-29 15:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册