0
我正在使用新的HttpClient類將一些數據上傳到服務器,因此我不得不使用像await/async這樣的新操作符。我有以下問題:如何阻止呼叫者線程等待,直到第一個文件將被上傳,然後移動到下一個。如何在等待操作員後阻止調用者線程
public async Task Upload(string filename)
{
HttpRequestMessage message = new HttpRequestMessage();
StreamContent streamContent = new StreamContent(new FileStream(filename, FileMode.Open));
message.Method = HttpMethod.Put;
message.Content = streamContent;
message.RequestUri = new Uri(webURI);
HttpResponseMessage response = await httpClient.SendAsync(message);
//I want to reach this point untill I will start to upload next file
if (response.IsSuccessStatusCode)
{
//do something
}
}
void uploadFiles()
{
foreach (string filename in filenames)
{
Upload(filename);
}
}
感謝您對我的問題的任何關注。
謝謝你,這就是我正在尋找。所以如果例如我有這樣的方法 - UploadFolder()調用UploadFiles(),最後這個例程調用Upload()我需要添加異步/等待運營商UploadFolder()和UploadFiles()以及? – Vlad
如果你想知道什麼時候所有的上傳都完成了,把'async void uploadFiles()'改爲'async Task uploadFiles()',然後'await uploadFiles();'。 – dtb