我有这个在WinForms中使用的扩展方法,但想知道如何用WPF实现相同的概念。
public static void SafeThreadAction<T>(this T control, Action<T> call)
where T : System.Windows.Forms.Control
{
if(control.InvokeRequired)
control.Invoke(call, control);
else
call(control);
}
答案 0 :(得分:4)
我认为WPF的版本看起来像这样:
public static void SafeThreadAction<T>(this T control, Action<T> call)
where T : System.Windows.Threading.DispatcherObject
{
if (!control.Dispatcher.CheckAccess())
control.Dispatcher.Invoke(call, control);
else
call(control);
}