Общий многопоточный доступ WPF к элементам управления - PullRequest
4 голосов
/ 25 апреля 2011

У меня есть этот метод расширения, который я использую в 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);
}

1 Ответ

4 голосов
/ 25 апреля 2011

Я думаю, что версия 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...