.net - 异步上传 Azure Blob : BeginUploadFromStream vs. BackgroundWorker

标签 .net asynchronous azure blob azure-blob-storage

我正在将 Blob 异步上传到 Azure Blob 存储。我可以使用 CloudBlockBlob.BeginUploadFromStream 或者使用 BackgroundWorker 调用同步 Upload 方法(如 UploadFile 或 PutBlock)。我正在寻找有关这两种方法的优缺点的一些意见。

我会开始行动。使用BackgroundWorker 方法报告进度似乎要容易得多。

谢谢!

最佳答案

BeginUploadFromStream 的效率会更高,因为它使用异步编程模型,在 I/O 发生时不会占用 CPU 资源。如果您启动BackgroundWorker并调用任何非APM方法,那么当发生从磁盘读取和写入网络等事情时,您实际上会浪费该线程。

在 .NET 中,您几乎总是希望在 APM 模型可实现最大效率时使用它。

关于.net - 异步上传 Azure Blob : BeginUploadFromStream vs. BackgroundWorker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316799/

相关文章:

.net - 如何在 Visual Studio 中从 .NET 项目引用 C++ 库项目?

.net - 多核环境中的多线程应用程序 - 每个核心的奇怪负载

asynchronous - "crossing asynchronous boundaries"的含义

java - 如何在 Play Framework 2.5 中编写异步操作?

azure 。如何使用 ARM 模板从托管镜像部署 VM

azure - 当 Azure 计费使用情况 API 的使用数据中的仪表 ID 不正确时该怎么办

javascript - 如何使用 ASP.net、C# 或 Javascript 创建箱线图

asynchronous - Rust lazy_static 与 async/await?

azure 模板不允许 jobs 关键字

c# - 如何使 + 运算符在将两个点相加时起作用?