According to an article in MSDN Magazine, najlepszą praktyką jest "Użyj ConfigureAwait(false)
, kiedy możesz." Ponadto stwierdza: "Jeśli możesz użyć ConfigureAwait
w pewnym momencie metody, to polecam użyć go dla każdego czekającego w tej metodzie po tym punkcie." Stephen Cleary, autora tego artykułu, states on his blog, który mówi: "W swoich asynchronicznych metodach " biblioteka "użyj ConfigureAwait (fałsz) wszędzie, gdzie to możliwe [podkreślenie dodane]."Skonfiguruj ConfigureAwait (false) dla całego projektu/dll
Biorąc pod uwagę, że większość lub wszystkie z moich await
stwierdzeń w projekcie bibliotecznym, który ma być szeroko stosowany, powinno mieć .ConfigureAwait(false)
czy można coś zrobić/zmienić ustawienie tak, aby domyślne zachowanie czekało w moim projekcie/dll nie ma kontynuować przechwyconego kontekstu? Oznacza to, że można pominąć wszystkie wywołania do .ConfigureAwait(false)
i zamiast tego dodać tylko12013 tylko wtedy, gdy potrzebuję zachować kontekst.
Z pewnością byłby przydatny, gdyby istniał atrybut, który moglibyśmy zastosować do klasy lub funkcji, która określiła domyślną wartość ConfigureAwait. –
Może być dobrze przetestować ConfigAwait (false) w dowolnej strukturze testowej. Każdy wie, czy tego rodzaju funkcjonalność istnieje w jakiejkolwiek strukturze. –
@AbdulSaboor: W dzisiejszych czasach są analizatory kodu, które mogą zmusić Cię do używania 'ConfigureAwait' (albo' true' lub 'false'), aby było to wyraźne. Osobiście ich nie używam, ale widzę ich korzyści, zwłaszcza w większych zespołach. –