队列<byte>与Stream </byte>

时间:2011-03-24 01:40:27

标签: c# generics stream queue byte

C#中的队列和流之间是否存在差异?

3 个答案:

答案 0 :(得分:9)

问题应该是:除了提供某种从中检索字节的接口之外,它们甚至还有什么共同之处吗?

队列Queue<byte>就是一个FIFO字节队列,主要功能是将一个字节值一次入队或出列 - 没有随机访问。您通常使用队列作为数据结构或算法的一部分(即想到树中的广度优先搜索)。队列中的所有数据都存储在内存中。

另一方面,流是通常从文件,内存,网络或其他来源获得的字节流的抽象表示 - 总有一个基础源或目标。这个源不必在内存中,即网络或文件流将允许您读取或写入文件或网络 - 因此流是从A到B获取字节的主要方式。

答案 1 :(得分:1)

队列必须存储字节,而流不存储。差异很大。

答案 2 :(得分:0)

我根本不是C#(甚至是.NET)的人,希望有人会提供更详细的答案,但是......

我认为很明显QueueStream是完全不同的。我理解为什么你会问,但即使快速查看API也会发现很多不同之处。

http://msdn.microsoft.com/en-us/library/system.io.stream.aspx
http://msdn.microsoft.com/en-us/library/system.collections.queue.aspx

这些差异中最重要的是,Queue是Collections包的一部分,StreamIO的一部分

编辑 - 键入的队列可能更适用,如其他海报所示  http://msdn.microsoft.com/en-us/library/7977ey2c.aspx