Sebenzisa i-CancellationToken eyodwa kumakhanda nomzimba we-.NET HttpClient
Dlulisa i-CancellationToken yesicelo kukho kokubili ukulungiselela impendulo ye-HttpClient nokufunda umzimba, esikhundleni sokukala isikhathi sokulinda somuntu obizayo kuphela.
Isibali sikhathi singayeka ukulinda ngesikhathi isicelo se-HTTP siqhubeka. Nikeza ukukhansela kumsebenzi uqobo uma umzamo we-proxy unesabelo sesikhathi esihlosiwe.
Kuhlelo lwe-.NET lwesimanje olune-HttpClient elungiselelwe i-proxy esivele ikhona:
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);
Isabelo esifanayo siqala ngaphambi kokulungiselela futhi sihlala sisebenza ngesikhathi kufundwa umzimba. I-ResponseHeadersRead ibuyisela ukulawula ngemva kwamakhanda, ngakho isikhathi sokuphela se-HttpClient ngokwaso asikunqumi isabelo sokufunda umzimba kamuva.
Gcina ukukhansela kwehlukile kusimo se-HTTP kanye namaphutha okuthutha. I-OperationCanceledException ingavela ku-token enikeziwe noma kwesinye isikhathi sokuphela esilungisiwe; hlola umthombo wokukhansela ofanele esikhundleni sokubika konke ukwehluleka njenge-proxy efile.
Sebenzisa kabusha iklayenti elingumnikazi wale ndlela ye-proxy. Ukukhansela umzamo owodwa akusho ukuthi kufanele kwakhiwe kabusha ichibi lonke lokuxhumana kusicelo ngasinye esilandelayo.
Isibonelo sibhafa umzimba wempendulo onobukhulu obulinganiselwe. Ukulanda okusakazwayo kufanele kudlulise i-token ku-loop yokukopisha ukusakazwa futhi kukhulule impendulo kuyo yonke indlela yokuphuma.
Ukukhansela kuveza inqubomgomo yomsebenzi, hhayi isithembiso esiqondile sewashi sakho konke isenzo seplathifomu. Ungakushintshi nge-loop yokubuza engapheli ku-Task.IsCompleted.