WPF中的MethodInvoker?

时间:2013-04-24 09:25:30

标签: .net wpf winforms

System.Windows.Forms.MethodInvoker是否有WPF等内置代理?

我正在将一些功能从WinForms移植到WPF,为此我不想导入winforms参考,WPF中是否有相应的代理?

3 个答案:

答案 0 :(得分:10)

你可以这样使用;

Dispatcher.BeginInvoke(new Action(delegate
  {
    // Do your work
  }));

答案 1 :(得分:6)

MethodInvoker也用于WPF。您可以在Dispatcher.Invoke或Control.Invoke方法中使用它。您也可以使用具有许多覆盖的Action委托。它们都很有效率。

答案 2 :(得分:0)

例如,您具有按钮控件btnLogin 您可以像这样使用它:

在WPF中:

btnLogin.Dispatcher.Invoke(new Action(delegate
{
    // Running on the UI thread
    btnLogin.Content = "TEST";
}));

在Winform中:

btnLogin.Invoke((MethodInvoker)delegate {
    // Running on the UI thread
    btnLogin.Text = "TEST";
});

干杯!