Úsáid aon CancellationToken amháin le haghaidh ceanntásca agus comhlacht .NET HttpClient
Tarchuir CancellationToken an iarratais trí shocrú freagartha HttpClient agus trí léamh an chomhlachta araon, seach am feithimh an ghlaoiteora amháin a thomhas.
Is féidir le stopuaireadóir stopadh ag feitheamh agus an t-iarratas HTTP fós ag leanúint. Cuir cealú ar fáil don oibríocht féin nuair a bhíonn buiséad beartaithe ag iarracht trí sheachfhreastalaí.
Do fheidhmchlár nua-aimseartha .NET a bhfuil HttpClient cumraithe le seachfhreastalaí aige cheana:
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);
Tosaíonn an buiséad céanna roimh an socrú agus fanann sé gníomhach agus an comhlacht á léamh. Tugann ResponseHeadersRead an rialú ar ais tar éis na gceanntásc, mar sin ní shocraíonn teorainn ama chríochnaithe HttpClient féin buiséad níos déanaí an léimh comhlachta as féin.
Coinnigh an cealú scartha ó stádas HTTP agus ó earráidí iompair. Is féidir le OperationCanceledException teacht ón gcomhartha a sholáthraítear nó ó theorainn ama chumraithe eile; scrúdaigh an fhoinse cealaithe is infheidhme seach gach teip a thuairisciú mar sheachfhreastalaí marbh.
Athúsáid an cliant a shealbhaíonn an bealach seachfhreastalaí seo. Ní gá go gciallódh cealú iarrachta go n-atógfaí linn naisc iomlán do gach iarratas ina dhiaidh sin.
Déanann an sampla maolánú ar chomhlacht freagartha teoranta. Ba cheart d'íoslódáil sruthaithe an comhartha a chur trína lúb cóipeála srutha agus an freagra a scaoileadh ar gach cosán amach.
Cuireann cealú polasaí oibríochta in iúl, ní gealltanas cruinn clog balla do gach gníomh bunúsach ardáin. Seachain é a mhalartú ar lúb pobalbhreithe gan deireadh ar Task.IsCompleted.