- ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
933 :デフォルトの名無しさん (ワッチョイ a685-TInN)[sage]:2016/10/06(木) 01:54:05.56 ID:Mzv6j6zu0 - HttpResponseMessage res = await client.GetAsync(url, _cts.Token);
string html = await res.Content.ReadAsStringAsync(); clientのGetAsyncはレスポンスヘッダを受信したらreturnするんじゃねぇの? レスポンスボディは読みこむ前に。 だから、実際、君がキャンセルしてるのはres.Content.ReadAsStringAsync()の最中で すでに手遅れ。
| - ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
934 :デフォルトの名無しさん (ワッチョイ a685-TInN)[sage]:2016/10/06(木) 01:57:11.53 ID:Mzv6j6zu0 - ストリームで読み込んで自分でキャンセルするしかない。
var stream = await res.Content.ReadAsStreamAsync(); while (var bytesRead = await stream.ReadAsync() != -1) { _cts.Token.ThrowIfCancellationRequested() }
| - ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
935 :デフォルトの名無しさん (ワッチョイ a685-TInN)[sage]:2016/10/06(木) 01:58:21.32 ID:Mzv6j6zu0 - await client.GetAsync(url, _cts.Token);
のキャンセルはサーバーがなかなかレスポンス自体を返さないような時の キャンセルでしょ。タイムアウトする前にキャンセルするとか。
|
|