在 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
}));
大家好,我正在将我的一个项目从 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
}));