2010-11-30 10 views
3

BlobをAzure Blobストレージに非同期でアップロードしています。私はCloudBlockBlob.BeginUploadFromStreamを使うことができます。あるいはUploadFileやPutBlockのような同期アップロードメソッドをBackgroundWorkerで呼び出すこともできます。どちらのアプローチの長所と短所についていくつかの意見を探しています。Azure Blobのアップロード非同期:BeginUploadFromStreamとBackgroundWorker

ボールが転がります。 BackgroundWorkerのアプローチでは、進捗状況を報告する方がずっと簡単です。

ありがとうございます!

答えて

3

I/Oの実行中にCPUリソースを消費しない非同期プログラミングモデルを使用するため、BeginUploadFromStreamが効率的になります。 BackgroundWorkerをスピンアップして非APMメソッドを呼び出すと、ディスクからの読み取りやネットワークへの書き込みなどが発生している間に本質的にそのスレッドを無駄にすることになります。

.NETでは、効率性を最大限に高めるためにAPMモデルを使用したいと考えています。

1

hereをご覧ください。

ブロックのパラレルアップロードを使用してブロブをアップロードする方法と、ブロブ自体の進行状況とパラレルアップロードをレポートする方法について説明しています。

this nice articleにリンクしています。パラレルブロックアップロードをしたくない場合に便利です。

2

私はまだnoirの投稿から多くのブログヒットを取得しているので、私はこの古い質問を更新しています。 Azure Storage Clientライブラリ2.0の* FromStreamメソッドを使用している私のブログ投稿の新しいバージョンがあることに注意してください。この新しいコードは、よりパフォーマンスが高く信頼性が高く、進捗報告のすべてを提供します。

Asynchronous Parallel Block Blob Transfers with Progress Change Notification 2.0

関連する問題