Kas ir ConfigureAwait?
Kas ir ConfigureAwait?

Video: Kas ir ConfigureAwait?

Video: Kas ir ConfigureAwait?
Video: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, Maijs
Anonim

ConfigureAwait (false) ietver uzdevumu, kas jau ir pabeigts līdz gaidītajam brīdim (kas patiesībā ir neticami bieži), tad ConfigureAwait (false) būs bezjēdzīga, jo pavediens turpina izpildīt kodu metodē pēc tam un joprojām tajā pašā kontekstā, kas tur bija iepriekš.

Pēc tam var arī jautāt, kāda ir ConfigureAwait false izmantošana?

ConfigureAwait ( viltus ) konfigurē uzdevumu tā, lai turpinājums pēc gaidīšanas nebūtu jāpalaiž zvanītāja kontekstā, tādējādi izvairoties no iespējamiem strupceļiem.

Papildus iepriekš minētajam, kas ir SynchronizationContext? Sinhronizācijas konteksts ir pašreizējās vides attēlojums, kurā darbojas mūsu kods. Tas ir, asinhronā programmā, kad mēs deleģējam darba vienību citam pavedienam, mēs uztveram pašreizējo vidi un saglabājam to Sinhronizācijas konteksts un novietojiet to uz uzdevuma objekta.

Ņemot to vērā, kāda ir ConfigureAwait izmantošana?

Izmantojot ConfigureAwait (viltus), lai izvairītos no strupceļa, ir bīstama prakse. Jums vajadzētu izmantojiet ConfigureAwait (nepatiess) par katru gaidīšanu pārejas slēgšanā visām bloķēšanas koda izsauktajām metodēm, tostarp visiem trešās un otrās puses kodiem. Izmantojot ConfigureAwait (nepatiess), lai izvairītos no strupceļa, labākajā gadījumā ir tikai uzlaušana).

Kas ir GetAwaiter?

GetAitentnieks () metodi, kas atgriež gadījumu, kam ir GetResult() metode. Lietojot kļūdainam uzdevumam, GetResult() izplatīs sākotnējo izņēmumu (tādā veidā “gaidīt uzdevumu;” darbojas). GetResult(), jo tas saglabā uzdevumu izņēmumus, nevis iekļauj tos AggregateException.

Ieteicams: