Stoppklukka getur hætt að bíða á meðan HTTP-beiðnin heldur áfram. Veittu aflýsingu á aðgerðina sjálfa þegar tilraun í gegnum proxy hefur fyrirhugað fjárhagsáætlun.

Fyrir nútíma .NET-forrit með núverandi proxy-stilltan HttpClient:

using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(5));
using var response = await client.GetAsync(
    targetUrl,
    HttpCompletionOption.ResponseHeadersRead,
    budget.Token);
response.EnsureSuccessStatusCode();
string body = await response.Content.ReadAsStringAsync(budget.Token);

Sama áætlun hefst fyrir uppsetninguna og helst virk á meðan meginmálið er lesið. ResponseHeadersRead skilar stjórninni eftir hausana, þannig að eigin lokunartími HttpClient skilgreinir ekki eitt og sér síðari áætlun fyrir lestur meginmáls.

Haltu aflýsingu aðskilinni frá HTTP-stöðu og flutningsvillum. OperationCanceledException getur komið frá veittu tókeninu eða frá öðrum stilltum tíma; skoðaðu viðeigandi aflýsingargjafa í stað þess að tilkynna hvert mistak sem dauðan proxy.

Notaðu aftur biðlarann sem á þessa proxy-leið. Að aflýsa tilraun þarf ekki að þýða endurbyggingu á öllum tengingarsafni fyrir hverja síðari beiðni.

Dæmið biðlar takmarkað svar-meginmál. Straumstreymisniðurhal ætti að senda tókenið í gegnum straumafritunarlykkjuna og losa svarið á hverri útleið.

Aflýsing lýsir aðgerðarstefnu, ekki nákvæmri loforði um rauntíma fyrir hverja undirliggjandi vettvangs-aðgerð. Forðastu að skipta henni út fyrir endalausa könnunarlykkju á Task.IsCompleted.

Tengdir greinar