2013-09-27 41 views
0

我想使用HttpClient.PutAsync()同時上傳多個圖像到Windows Azure存儲。代碼段是這樣的:批量上傳使用HttpClient.PutAsync()

Task<HttpResponseMessage> putThumbnail = httpclient.PutAsync(new Uri(ThumbnailSas), thumbcontent); 

Task<HttpResponseMessage> putImage = httpclient.PutAsync(new Uri(ImageSas), imagecontent); 

Task.WaitAll(new Task<HttpResponseMessage>[] {putThumbnail, putImage}); 

奇怪的是這樣的服務器不返回所有這樣Task.WaitAll會永遠等待。

如果我使用await更改代碼,服務器返回並且我可以正確地得到結果。

HttpResponseMessage result = await httpclient.PutAsync(new Uri(ThumbnailSas), thumbcontent); 

如何使用HttpClient.PutAsync批量上傳圖像?

+0

可能重複[await vs Task.Wait - Deadlock?](http://stackoverflow.com/questions/13140523/await-vs-task-wait-deadlock) - 我相信沒有什麼特別的關於PutAsync,而是您正在同步等待('WaitAll')所有阻止PutAsync調用完成的結果的事實。 –

回答