在 WPF、C# 中调用控件

Invoke a Control in WPF, C#

大家好,我正在将我的一个项目从 windowsforms 切换到 WPF。到目前为止,我使用这段代码用来自另一个线程的数据调用我的 GUI 对象:

this.Invoke(new Action<NewDiagPacketArrivedEventArgs>(DoSomething), e);

如何在 WPF 中做同样的事情?我找到了一些关于使用调度程序的帖子,但我无法让它工作。我想要一个简单的解决方案。如果您知道有关此主题的任何指南,我将不胜感激。

谢谢

试试这个

this.Dispatcher.Invoke(()=>DoStuffOnGUIThread());

DoStuffInGUIThread() 是包含要在 UI 线程上执行的代码的方法。

在 Winforms 中,我们使用 Control.Invoke 将代码从其他线程编组到 GUI 线程。 在 WPF 中,它的 Dispatcher.Invoke,每个 Dispatcher 对象都有自己的 Dispatcher,在那个队列中它将被封送。

Dispatcher.BeginInvoke(new Action(() =>
 {
     //Your code
 }));