c# - 流通过

标签 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);
}

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

如何更高效地解决任务?

最佳答案

更改下载方法以接受一个额外的大小参数,该参数指示要下载多少。然后循环下载和上传,直到下载返回一个空流。

关于c# - 流通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28847137/

相关文章:

c# - 多个 ContextMenuStrip 的 ToolStripMenuItem

asp.net - global.asax 中设置的用户仅在下一个请求后可用

.net - F# 有类似 Haskell 的 where 子句的东西吗?

c++ - 无法在 C++ 中创建包含日期和时间的文件名

lambda - 如何使用Optional仅使用高阶函数来检查Web服务的返回是否为null并避免noSuchElementException

c# - 如何在 TreeView 中获取子位置?

c# - 插入 MS Access 语句中的语法错误

c# - 在ASP.Net Core 2.2 MVC中使用端点路由时,top如何正确覆盖IUrlHelper?

c# - CA1062:共同构造函数调用上的 ValidateArgumentsOfPublicMethods

php - 读/写 php ://temp stream 时遇到问题