ConfigureAwait nima?
ConfigureAwait nima?

Video: ConfigureAwait nima?

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

ConfigureAwait (noto'g'ri) kutilgan vaqtga qadar tugallangan vazifani o'z ichiga oladi (bu haqiqatan ham juda keng tarqalgan), keyin ConfigureAwait (noto'g'ri) ma'nosiz bo'ladi, chunki ip bundan keyin usulda va avvalgi kontekstda kodni bajarishda davom etadi.

Keyinchalik, shuningdek, ConfigureAwait false-dan nima foyda?

ConfigureAwait ( yolg'on ) vazifani shunday sozlaydiki, kutishdan keyin davom etish qo'ng'iroq qiluvchi kontekstida bajarilishi shart emas, shuning uchun yuzaga kelishi mumkin bo'lgan blokirovkalardan qochadi.

Yuqoridagilardan tashqari, SynchronizationContext nima? Sinxronizatsiya konteksti bu bizning kodimiz ishlayotgan joriy muhitning ifodasidir. Ya'ni, asinxron dasturda biz ish birligini boshqa ish zarrachasiga topshirganimizda, biz joriy muhitni ushlaymiz va uni misolida saqlaymiz. Sinxronizatsiya konteksti va uni Vazifa obyektiga joylashtiring.

Buni hisobga olsak, ConfigureAwait nimadan foydalanadi?

Foydalanish ConfigureAwait (noto'g'ri) tiqilib qolishdan qochish xavfli amaliyotdir. Siz majbur bo'lardingiz ConfigureAwait-dan foydalaning (noto'g'ri) blokirovka kodi tomonidan chaqirilgan barcha usullar, shu jumladan barcha uchinchi va ikkinchi tomon kodlari o'tish davrida yopilishini kutish uchun. Foydalanish ConfigureAwait (noto'g'ri) boshi berk ko'chadan qochish uchun eng yaxshi holatda bu shunchaki xakerlikdir).

GetAwaiter nima?

GetAwaiter () usuli, bu GetResult() usuliga ega bo'lgan misolni qaytaradi. Noto'g'ri topshiriqda foydalanilganda GetResult() asl istisnoni targ'ib qiladi ("wait task;" o'z xatti-harakatini shu tarzda oladi). GetResult() chunki u AggregateException ga o'rash o'rniga vazifa istisnolarini saqlaydi.

Tavsiya: