我有一种方法可以将一个流复制到另一个流中。这是相当简单和典型的:
public static void CopyStream(Stream source, Stream destination)
{
byte[] buffer = new byte[32768];
int read;
while ((read = source.Read(buffer, 0, buffer.Length)) > 0)
{
destination.Write(buffer, 0, read);
}
}
当目标流是 aFileStream
时,我观察到在复制完成并且目标流关闭之前不会创建文件。我相信destination.Flush()
在复制流时不时调用会创建文件并在复制完成之前开始将内容写入磁盘,这将释放我系统中的内存。
这个destination.Flush()
电话什么时候打?我的算法循环中的每次迭代?每 N 次迭代?绝不?