/// <summary>
///执行写入操作
/// </summary>
/// <param name="i"></param>
private void m_write()
{
threadNum++;
while (true)
{
queue.Enqueue( string.Concat("当前线程ID:", Thread.CurrentThread.ManagedThreadId, " valuevaluevaluevaluevaluevaluevaluevaluevaluevaluevalue\r\n"));
writeNum++;
Thread.Sleep(100);
}
}
请问:m_write()被N个线程同时调用,用"writeNum++;"来计算添加了多少次queue写法是否正确?,注:不用queue.Count属性计算添加多少次queue,是因为每隔一段时间queue就会被另一个线程TryDequeue(),
writeNum是全局变量的话应该是可以的吧 可以计算m_write方法被执行了多少次
不懂,不一定,我做了原子操作之后值就不一样了,不只如何处理才是正确的
System.Threading.Interlocked.Increment(ref AllReceivedDataCount);
我采用了原子操作