考虑到我们有两种方法:
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);
}
但是,此解决方案要求将整个流内容加载到内存中。
如何更有效地解决任务?
最佳答案
更改“下载”方法以接受其他大小参数,该参数指示要下载的数量。然后循环下载和上传,直到下载返回空流。