首页新闻找找看学习计划

C#多现成操作ConcurrentDictionary<t>

0
[已解决问题] 解决于 2016-04-19 09:44

项目目前有3个线程写入ConcurrentQueue<T>.

lock(obj)

{

  if (ListReceData.IsEmpty)
     {
        return;//待处理数据为空
      }

  //获取位置为0的数据
            TcpData tcpdata = null;
            ListReceData.TryDequeue(out tcpdata);
            //若无法返回,pass
            if (tcpdata == null)
            {
                return;
            }

异常出现在这个地方?明明还有2条记录,却说没有记录

  //DTOO:

}

PKSEO_dudu的主页 PKSEO_dudu | 初学一级 | 园豆:9
提问于:2015-11-14 18:24
< >
分享
最佳答案
1

用ConcurrentQueue是不用lock的.用的时候只要Try*然后判断是否成功就可以了.

你所谓的里面还有2条记录是不算数的.你自己也知道是多线程的.

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:28701 | 2015-11-15 21:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册