2013-09-07 9 views
8

Jeśli instrukcje na wykresie wywołań po punkcie "Oczekiwanie" nie mają dostępu do żadnego obiektu, którego typ nie pochodzi od klasy System.Windows.UIElement, możemy powiedzieć, że programista bezpiecznie korzysta z ConfigureAwait (false) dla aplikacji Windows Mobile?Zdecyduj, kiedy należy użyć ConfigureAwait (fałsz)

Jakie typy instrukcji musiały zostać wykonane w wątku UI oprócz aktualizacji elementów GUI?

Odpowiedz

9

Każdy kod, który bezpośrednio (lub pośrednio) manipuluje elementami interfejsu użytkownika, powinien być uruchamiany w kontekście interfejsu użytkownika. Zwykle obejmuje to tylko bezpośrednią manipulację i aktualizację ViewModels.

We wszystkich innych sytuacjach powinieneś użyć ConfigureAwait(false).

+2

Aby [zacytować siebie] (http://blog.stephencleary.com/2012/02/async-and-await.html): * Dobrą zasadą jest użycie 'ConfigureAwait (false)', chyba że wiesz * musisz * potrzebować kontekstu. * –

+0

Chcę zaimplementować analizę statyczną, aby znaleźć przypadki, w których nie potrzebuję kontekstu. Czy byłoby bezpiecznie, gdybym wdrożył powyższy sposób? –

+0

@TomK .: Jeśli zaimplementujesz analizę statyczną, aby uwzględnić dowolny kod wywołujący zdarzenie, gdy subskrypcja tego zdarzenia może aktualizować element interfejsu użytkownika, to powinno wystarczyć. –

Powiązane problemy