ConfigureAwait nedir?
ConfigureAwait nedir?

Video: ConfigureAwait nedir?

Video: ConfigureAwait nedir?
Video: Which do I use, ConfigureAwait True or False? 2024, Mayıs
Anonim

YapılandırmaBekleme (yanlış) beklendiği zamana kadar tamamlanmış bir görevi içerir (ki bu aslında inanılmaz derecede yaygındır), daha sonra YapılandırmaBekleme (yanlış) anlamsız olacaktır, çünkü iş parçacığı bundan sonra yöntemde kod yürütmeye devam eder ve yine de daha önce orada olan aynı bağlamda.

Daha sonra, ConfigureAwait false ne işe yarar diye de sorulabilir.

YapılandırmaBekleme ( YANLIŞ ) görevi, beklemeden sonraki devamın arayan bağlamında çalıştırılmasına gerek kalmayacak şekilde yapılandırır, böylece olası kilitlenmelerden kaçınır.

Yukarıdakilerin yanında SynchronizationContext nedir? SenkronizasyonBağlam kodumuzun çalıştığı mevcut ortamın bir temsilidir. Yani, asenkron bir programda, bir iş birimini başka bir iş parçacığına devrettiğimizde, mevcut ortamı yakalar ve bir örneğinde saklarız. SenkronizasyonBağlam ve Task nesnesine yerleştirin.

Bunu göz önünde bulundurarak, ConfigureAwait'in kullanımı nedir?

kullanma YapılandırmaBekleme (yanlış) kilitlenmeleri önlemek tehlikeli bir uygulamadır. Yapmaya mecbur kalacaksın ConfigureAwait'i kullan (yanlış) tüm üçüncü ve ikinci taraf kodu da dahil olmak üzere engelleme kodu tarafından çağrılan tüm yöntemlerin geçişli kapanışındaki her bekleme için. kullanma YapılandırmaBekleme (yanlış) kilitlenmeyi önlemek en iyi ihtimalle sadece bir kesmektir).

GetAwaiter nedir?

GetAwaiter () yöntemi, GetResult() yöntemine sahip bir örneği döndürür. Hatalı bir Görev üzerinde kullanıldığında, GetResult() orijinal istisnayı yayacaktır (bu, “görev bekliyor;” davranışını bu şekilde alır). GetResult() çünkü görev istisnalarını bir AggregateException içine sarmak yerine korur.

Önerilen: