Czy są jakieś przykłady na temat korzystania z części Thradingu MVVM Light? Jaka jest zaleta korzystania z MVVMLight.threading przez normalne wątki .net?MVVM Light Threading Przykład
5
A
Odpowiedz
3
wygląda wszystko gwintowania część w mvvmlight jest ta klasa:
public static class DispatcherHelper
{
public static Dispatcher UIDispatcher
{
get;
private set;
}
/// <summary>
/// Executes an action on the UI thread. If this method is called
/// from the UI thread, the action is executed immendiately. If the
/// method is called from another thread, the action will be enqueued
/// on the UI thread's dispatcher and executed asynchronously.
/// <para>For additional operations on the UI thread, you can get a
/// reference to the UI thread's dispatcher thanks to the property
/// <see cref="UIDispatcher" /></para>.
/// </summary>
/// <param name="action">The action that will be executed on the UI
/// thread.</param>
public static void CheckBeginInvokeOnUI(Action action)
{
if (UIDispatcher.CheckAccess())
{
action();
}
else
{
UIDispatcher.BeginInvoke(action);
}
}
/// <summary>
/// This method should be called once on the UI thread to ensure that
/// the <see cref="UIDispatcher" /> property is initialized.
/// <para>In a Silverlight application, call this method in the
/// Application_Startup event handler, after the MainPage is constructed.</para>
/// <para>In WPF, call this method on the static App() constructor.</para>
/// </summary>
public static void Initialize()
{
if (UIDispatcher != null)
{
return;
}
// for silverlight
UIDispatcher = Deployment.Current.Dispatcher;
// wpf
//IDispatcher = Dispatcher.CurrentDispatcher;
}
}
}
i to wszystko. Użyj DispatcherHelper.Initialize() zgodnie z skomentować w statycznym konstruktorze aplikacji (WPF) lub obsługi zdarzeń Application_Startup (Silverlight) - a następnie u mogą korzystać DispatcherHelper.CheckBeginInvokeOnUI (Akcja Akcja)
Pozdrowienia
Powiązane problemy
- 1. Szukam prostego przykładu MVVM Light
- 2. Właściwy sposób korzystania z MVVM Light Messenger
- 3. Mvvm-Light Silverlight, używając EventToCommand z Comboboxem
- 4. Niezwykle prosta próbka WP7 MVVM-Light?
- 5. Jak używać MVVM-Light z tokenami?
- 6. Najlepsze praktyki w zakresie MVVM-light + RIA
- 7. SelectionChanged wiążące w Silverlight + MVVM-Light
- 8. Cleanup vs Dispose (bool) w MVVM-light
- 9. Czy MVVM Light SimpleIoC obsługuje single?
- 10. Przykład okna dialogowego WPV MVVM
- 11. Czy można wysłać tylko token za pośrednictwem MVVM Light Messenger?
- 12. Zamień Light MVVM na MvvmCross lub użyj obu
- 13. Używanie komunikatora MVVM Light do przesyłania wartości między modelami widoku
- 14. MVVM-Light => Przełęcz parametru Command and EventArgs dowodzić
- 15. Nawigacja Silverlight za pomocą Mvvm-light (oobe) + MEF?
- 16. MVVM Light & WPF - Wiązanie Wiele instancji okna do ViewModel
- 17. Multi Threading
- 18. Python threading and semaphore
- 19. Python3 threading with UWSGI
- 20. Dobry przykład, jak używać UpdateSourceTrigger = Jawne z MVVM
- 21. Python Threading Concept Question
- 22. Threading, Copied, Error, SetTextCallback
- 23. WinRT MVVM Lekki przykładowy projekt
- 24. Threading Box2D z pthreads
- 25. C# Threading w metodzie
- 26. Threading w Objective-C
- 27. Node.js C++ Addon: Threading
- 28. Threading concept in C#
- 29. Python Threading nieobsługiwany wyjątek
- 30. Python threading blocks
Dzięki agend. Co powiesz na porównanie z normalnym wątkiem .net i czy można go użyć w widokach? –
1. first u initialize DispatcherHelper class calling Initialize() method - i u musisz zrobić to w wątku interfejsu użytkownika, aby mógł zapamiętać/ustawić swoje prywatne odwołanie do dispatchera – agend
2. po tym możesz użyć DispatcherHelper.CheckBeginInvokeOnUI (akcja akcji) - z dowolnego miejsca, w którym chcesz - widok, model, viewmodel - zawsze użyjemy wątku interfejsu użytkownika, aby wywołać twoje działanie. 3. o normalnym porównaniu z wątkiem .net - normalnie będziesz musiał zrobić to samo: zachowaj odniesienie do interfejsu użytkownika dispatcher, sprawdź, czy jesteś w tym wątku, a na końcu zadzwoń do dispatcher.BeginInvoke (action) - w tej klasie jest łatwiej – agend