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);
        }
    }

私の問題についてご注意いただきありがとうございます。

4

1 に答える 1

1

await次のファイルをアップロードする前に、アップロードが完了していること。

async void uploadFiles()
{
    foreach (string filename in filenames)
    {
        await Upload(filename);
    }
}
于 2012-11-22T12:30:33.613 に答える