项目目前有3个线程写入ConcurrentQueue<T>.
lock(obj)
{
if (ListReceData.IsEmpty)
{
return;//待处理数据为空
}
//获取位置为0的数据
TcpData tcpdata = null;
ListReceData.TryDequeue(out tcpdata);
//若无法返回,pass
if (tcpdata == null)
{
return;
}
异常出现在这个地方?明明还有2条记录,却说没有记录
//DTOO:
}
用ConcurrentQueue是不用lock的.用的时候只要Try*然后判断是否成功就可以了.
你所谓的里面还有2条记录是不算数的.你自己也知道是多线程的.