2010-11-30 89 views
3

我將blob異步上傳到Azure Blob存儲。我可以使用CloudBlockBlob.BeginUploadFromStream,或者我可以使用BackgroundWorker調用同步上傳方法(如UploadFile或PutBlock)。我正在尋找關於這兩種方法的利弊的一些意見。上傳Azure Blob(s)Async:BeginUploadFromStream與BackgroundWorker

我會滾球。使用BackgroundWorker方法報告進度顯得容易得多。

謝謝!

回答

3

BeginUploadFromStream會更有效率,因爲它使用的異步編程模型在I/O發生時不會佔用CPU資源。如果啓動BackgroundWorker並調用任何非APM方法,那麼在從磁盤讀取和寫入網絡等事情發生時,本質上會浪費該線程。

在.NET中,當它可用於獲得最大效率時,您幾乎總是希望使用APM模型。

1

請看看這篇文章here

它描述瞭如何使用並行上傳塊來上傳blob,以及報告blob自身的進度和並行上傳。

它還鏈接到this nice article,如果您不想執行並行塊上載,您可能會發現它有用。