可以同时从同一个流写入/读取吗?

时间:2014-01-20 19:45:06

标签: c# .net

我想在问之前我可以尝试一下,但我想确保在我浪费任何时间之前它是可能的。

我正在尝试消除对内存或物理文件缓冲区的需求。我想通过HTTP或FTP(或其他任何东西)下载文件,当流程被填满时,我想同时开始将该流(通过HTTP,FTP等)上传到其他地方。

这在.NET中是否可行?我认为“传统上”这样做的唯一方法是首先允许流完成,然后将该流从内存复制到另一个流,但我想使用最少量的资源(时间,内存等)可能的。

2 个答案:

答案 0 :(得分:7)

这完全可能,没问题;但是你不会使用相同的流,你会使用两个不同的流,并在循环中将数据从输入传递到输出。

答案 1 :(得分:1)

应该没问题。最新版本的.Net支持Stream.CopyToAsync(otherStream)(或其non-async counterpart),这对您来说几乎是一个完整的解决方案。