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