我最近开始学习WPF编程,并遇到了以下问题。我不明白如何使用Dispatcher.Invoke()
方法。我有线程方面的经验,并且写过一些简单的Windows Forms程序,其中我只是使用了
Control.CheckForIllegalCrossThreadCalls = false;
我知道这可能有点糟糕,但它们只是简单的监视应用程序。
事实是,现在我正在制作一个WPF应用程序,在后台检索数据,我启动一个新线程来调用检索数据(从Web服务器),现在我想在我的WPF表单上显示它。问题是,我无法从此线程设置任何控件。甚至连标签都不能。如何解决?
答案评论:
@Jalfp:
那么我应该在“新线程”中使用此Dispatcher方法获取数据吗?还是应该让后台工作程序检索数据,将其放入字段中,并启动一个等待该字段填充并调用Dispatcher以将检索到的数据显示到控件中的新线程?