Gee die sperdatum aan die bewerking wat die netwerkwerk kan kanselleer. Vir 'n bestaande .NET HttpClient wat deur 'n proxy opgestel is:

using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);

Die toepassing voorsien client en uri. Hierdie oorlaai ontvang die kansellasietoken; 'n tydsverloop rondom die wag vir sy taak sal net daardie oproeper se wag beperk. Om 'n voltooiingsvlag te peil het dieselfde probleem: die oproeper kan wegstap terwyl sokkette en werkers besig bly.

Kansellasie volg die kliënt se implementering en opruimingspad. Dit belowe nie dat elke laer-vlak aksie by 'n presiese instruksie stop nie. Laat daardie pad klaarmaak en verwyder die hulpbronne wat die bewerking besit. Sluit afsonderlik beheerde liggaamlees in die ontwerp in; vir 'n moderne .NET ResponseHeadersRead-bewerking, gee dieselfde token deur die liggaamlees. Ander kliënte voorsien hul eie kansellasie-, abort- en opruimingskoppelvlakke.

'n Herhaling benodig 'n uitkoms vir die vorige poging. Hou sy identifiseerder en gekose proxy, versoek kansellasie wanneer nodig en vermy om die taak te verloor terwyl plaasvervangers onbepaald begin word. Anders kan 'n stadige eindpunt werk vinniger ophoop as wat die toepassing dit vrylaat.

Die afgeleë uitkoms benodig aparte hantering. Die bestemming het moontlik reeds 'n indiening ontvang toe kansellasie plaasgevind het. Gebruik die toepassing se herstel- of idempotensiebeleid; om plaaslike werk te stop maak nie 'n afgeleë aksie ongedaan nie.

Verwante artikels