C#中的队列和流之间是否存在差异?
答案 0 :(得分:9)
问题应该是:除了提供某种从中检索字节的接口之外,它们甚至还有什么共同之处吗?
队列Queue<byte>
就是一个FIFO字节队列,主要功能是将一个字节值一次入队或出列 - 没有随机访问。您通常使用队列作为数据结构或算法的一部分(即想到树中的广度优先搜索)。队列中的所有数据都存储在内存中。
另一方面,流是通常从文件,内存,网络或其他来源获得的字节流的抽象表示 - 总有一个基础源或目标。这个源不必在内存中,即网络或文件流将允许您读取或写入文件或网络 - 因此流是从A到B获取字节的主要方式。
答案 1 :(得分:1)
队列必须存储字节,而流不存储。差异很大。
答案 2 :(得分:0)
我根本不是C#(甚至是.NET)的人,希望有人会提供更详细的答案,但是......
我认为很明显Queue
和Stream
是完全不同的。我理解为什么你会问,但即使快速查看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包的一部分,Stream
是IO
的一部分
编辑 - 键入的队列可能更适用,如其他海报所示 http://msdn.microsoft.com/en-us/library/7977ey2c.aspx