რა არის ConfigureAwait?
რა არის ConfigureAwait?

ვიდეო: რა არის ConfigureAwait?

ვიდეო: რა არის ConfigureAwait?
ვიდეო: Which do I use, ConfigureAwait True or False? 2024, ნოემბერი
Anonim

ConfigureAwait (false) მოიცავს დავალებას, რომელიც უკვე დასრულებულია მოლოდინის დროისთვის (რაც რეალურად წარმოუდგენლად გავრცელებულია), შემდეგ ConfigureAwait (false) უაზრო იქნება, რადგან ძაფი აგრძელებს მეთოდის კოდის შესრულებას ამის შემდეგ და ისევ იმავე კონტექსტში, რაც ადრე იყო.

შემდგომში, შეიძლება ასევე იკითხოთ, რა არის ConfigureAwait false-ის გამოყენება?

ConfigureAwait ( ყალბი ) აკონფიგურირებს ამოცანას ისე, რომ ლოდინის შემდეგ გაგრძელება არ უნდა იყოს გაშვებული აბონენტის კონტექსტში, ამიტომ თავიდან აიცილებს შესაძლო ჩიხებს.

გარდა ზემოთ, რა არის SynchronizationContext? სინქრონიზაციის კონტექსტი არის მიმდინარე გარემოს წარმოდგენა, რომელშიც ჩვენი კოდი მუშაობს. ანუ, ასინქრონულ პროგრამაში, როდესაც ჩვენ ვანაწილებთ სამუშაოს ერთეულს სხვა თემაში, ვაფიქსირებთ მიმდინარე გარემოს და ვინახავთ მას მაგალითად სინქრონიზაციის კონტექსტი და განათავსეთ იგი სამუშაო ობიექტზე.

ამის გათვალისწინებით, რა არის ConfigureAwait-ის გამოყენება?

გამოყენება ConfigureAwait (ცრუ) ჩიხების თავიდან აცილება საშიში პრაქტიკაა. მოგიწევდა გამოიყენეთ ConfigureAwait (false) ყოველი მოლოდინის დროს გარდამავალი დახურვისას ყველა მეთოდის მიერ მოწოდებული დაბლოკვის კოდით, მათ შორის ყველა მესამე და მეორე მხარის კოდი. გამოყენება ConfigureAwait (ცრუ) ჩიხების თავიდან აცილება საუკეთესო შემთხვევაში მხოლოდ ჰაკია).

რა არის GetAwaiter?

GetAwaiter () მეთოდი, რომელიც აბრუნებს მაგალითს, რომელსაც აქვს GetResult() მეთოდი. როდესაც გამოიყენება გაუმართავი დავალებაზე, GetResult() გაავრცელებს თავდაპირველ გამონაკლისს (ასე იღებს თავის ქცევას „ ელოდება ამოცანას;“). GetResult(), რადგან ის ინახავს ამოცანის გამონაკლისებს, ნაცვლად მათი შეფუთვაში AggregateException.

გირჩევთ: