Комментарии 5
Ну вообще, если писать согласно MVVM, тогда привязки, триггеры и т.д. позволяют избегать использования Dispatcher практически всегда.
this.ThreadSafeUpdate(() =>Visibility = Visibility.Hidden);
Dispatcher.BeginInvoke(() =>Visibility = Visibility.Hidden);
И чем первое лучше второго? :)
И да, при использовании MVVM с Dispatcher сталкиваешься редко, т.к. Binding свойств — потокобезопасен.
Вы, очевидно, промахнулись с твиттером этой «статьёй» :-).
я встречал такую интерпретацию
public static class ExtensionMethods
{
private static Action EmptyDelegate = delegate() { };
public static void Refresh(this UIElement uiElement)
{
uiElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
System.Threading.Thread.Sleep(10);
}
public static DateTime GetDateNow(this DateTime d)
{
return DateTime.Now;
}
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
SafeThreadUpdate() для wpf-контролов