Silverlight i wątki

Swoją przygodę z Silverlight zacząłem poprze napisanie małego programu który później opublikuje na codeplex.com. Miałem tam pewny problem, mianowicie z poziomu wątku musiałem zaktualizować stan kontrolek. W pierwszym podejściu korzystałem klasy BackgroundWorker i z niego poprzez właściwość kontrolki Dispatcher wykonywałem metodę BeginInvoke w której przekazywałem kod do aktualizacji. Jednak to się okazała mało skuteczne, więcej kod do obsługi wątków w Silverlight został trochę uszczuplony więc nie można było poczekać na zakończenie wykonywania kodu przekazanego w BeginInvoke.

Rozwiązaniem okazało się użycie klasy DispatcherTimer który działa tak jak klasa Dispatcher w wątku interfejsu UI więc można było odrazu aktualizować stan kontrolki. Z tym że DispatcherTimer umożliwia wykonywania podanego kodu cyklicznie.

0 komentarze:

Prześlij komentarz