【发布时间】:2015-12-07 21:10:20
【问题描述】:
我有一个用于从另一个程序获取数据的 NetworkStream。数据以 Byte[64] 的形式到达,然后我将其入队到 ConcurrentQueue,以便另一个线程可以出列以便稍后进行分析。 队列被实例化:
ConcurrentQueue<byte[]> fifo = new ConcurrentQueue<byte[]>();
然后我将所有正在发送的数据排入队列:
Byte[] bytesIn = new Byte[64];
int i;
while ((i = stream.Read(bytesIn, 0, bytesIn.Length)) != 0)
{
fifo.Enqueue(bytesIn);
}
如果我随后查看(在调试期间)fifo 中的数据,结果发现其中包含的每个字节 [64] 都与最新的bytesIn 相同。如何确保我添加到 fifo 的数组是值而不是指针(如果这是正确的术语)?
【问题讨论】:
-
在 C# 中使用引用类型时,您总是使用指向实际值的指针。
标签: c# concurrent-queue