ConfigureAwait nədir?
ConfigureAwait nədir?

Video: ConfigureAwait nədir?

Video: ConfigureAwait nədir?
Video: Settling the Biggest Await Async Debate in .NET 2024, Noyabr
Anonim

ConfigureAwait (yanlış) gözlənilən vaxta qədər artıq tamamlanmış bir tapşırığı ehtiva edir (bu, əslində inanılmaz dərəcədə yaygındır), sonra ConfigureAwait (false) mənasız olacaq, çünki iplik bundan sonra metodda kodu icra etməyə davam edir və hələ də əvvəllər mövcud olan kontekstdə.

Sonradan soruşa bilərsiniz ki, ConfigureAwait false nəyə xidmət edir?

ConfigureAwait ( yalan ) tapşırığı elə konfiqurasiya edir ki, gözləmədən sonra davamın zəng edənin kontekstində icrasına ehtiyac olmasın, buna görə də hər hansı mümkün dalana dirənməsin.

Yuxarıdakılardan əlavə, SynchronizationContext nədir? Sinxronizasiya konteksti kodumuzun işlədiyi cari mühitin təsviridir. Yəni, asinxron proqramda biz bir iş vahidini başqa bir mövzuya həvalə etdikdə, biz cari mühiti çəkirik və onu bir misalda saxlayırıq. Sinxronizasiya konteksti və Tapşırıq obyektinə yerləşdirin.

Bunu nəzərə alaraq, ConfigureAwait-in istifadəsi nədir?

İstifadə ConfigureAwait (yalan) dalana dirənməmək təhlükəli bir təcrübədir. etməli olardın ConfigureAwait istifadə edin (yanlış) bloklama kodu ilə çağırılan bütün metodların, o cümlədən bütün üçüncü və ikinci tərəf kodlarının keçiddə bağlanmasını gözləyir. İstifadə ConfigureAwait (yanlış) dalana dirənmək ən yaxşı halda sadəcə bir hackdir).

GetAwaiter nədir?

GetAwaiter () metodu, GetResult() metodu olan nümunəni qaytarır. Qüsurlu Tapşırıqda istifadə edildikdə, GetResult() orijinal istisnanı yayacaq (“tapşırığı gözləyin;” öz davranışını belə əldə edir). GetResult() çünki o, tapşırıq istisnalarını AggregateException-a bükmək əvəzinə qoruyur.

Tövsiyə: