流经过

时间:2015-03-04 05:18:43

标签: c# .net stream

我们有两种方法:

Task DownloadFromAToStreamAsync(Stream destinationStream);
Task UploadToBFromStreamAsync(Stream sourceStream);

现在我们需要从A下载内容并通过一次操作将其上传到B.

其中一个解决方案:

using (var stream = new MemoryStream())
{
    await DownloadFromAToStreamAsync(stream);
    stream.Seek(0, SeekOrigin.Begin);
    await UploadToBFromStreamAsync(stream);
}

但是这个解决方案需要将整个流内容加载到内存中。

如何更有效地解决任务?

1 个答案:

答案 0 :(得分:0)

更改下载方法以接受附加大小参数,该参数指示下载量。然后循环下载和上传,直到下载返回空流。