13084


エラーになる時とならない時があり、インターネット環境に基づくものだとわかりました。  
タイムアウトの設定をしたいのですが、どのように行えばよろしいでしょうか？

[code]

    static async Task DownloadImage(HttpClient httpClient, string uri, string path)
        {
            /// httpClient.Timeout = TimeSpan.FromMilliseconds(500000);
            using (var res = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead))
            using (var fileStream = File.Create(path))
            using (var httpStream = await res.Content.ReadAsStreamAsync())
                await httpStream.CopyToAsync(fileStream);
        }
    
        static async Task DownloadImage(string[] uris, string path)
        {
            using (var httpClient = new HttpClient())
                await Task.WhenAll(uris.Select((uri, i) => DownloadImage(httpClient, uri, string.Format("{0}{1}.jpg", path, i + 1))));
        }
    
[/code]


CC BY-SA 3.0
2015-08-05T14:01:38.490
13079
2017-06-19T05:08:14.177
2017-06-19T05:08:14.177
5793
7973
question
c#
C# HttpClientタイムアウトの設定をしたいです


漠然と「タイムアウトを設定したい」とされていますが何のタイムアウト、処理開始からレスポンスを返し始めるまでの時間なのか、レスポンス中のストールなのかなどなど、求めているものを具体的に表現する必要があると思います。

[HttpClient.Timeout](https://msdn.microsoft.com/ja-
jp/library/system.net.http.httpclient.timeout\(v=vs.110\).aspx)は

> 要求がタイムアウトするまでのミリ秒単位の待機時間。  
>  既定値は 100,000 ミリ秒 (100 秒) です。  
>  タスクの CancellationTokenSource を使用して個々の要求ごとに異なるタイムアウトを設定できます。

だそうです（わかりません）。

[code]

    static async Task DownloadImage(HttpClient httpClient, string uri, string path) {
        using (var res = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead))
        using (var fileStream = File.Create(path))
        using (var httpStream = await res.Content.ReadAsStreamAsync())
            await httpStream.CopyToAsync(fileStream);
    }
    
    static async Task DownloadImage(string[] uris, string path) {
        using (var httpClient = new HttpClient { Timeout = TimeSpan.FromMilliseconds(500000) })
            await Task.WhenAll(uris.Select((uri, i) => DownloadImage(httpClient, uri, string.Format("{0}{1}.jpg", path, i + 1))));
    }
    
[/code]


CC BY-SA 3.0
2015-08-05T20:25:54.617
13084
2015-08-05T20:25:54.617
4236
13079
answer