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