【发布时间】:2014-02-19 20:19:06
【问题描述】:
我正在尝试从不同线程中的事件更新我的 UI 中的图像。我正在使用调度程序(基于此问题:Fire events from different thread)来执行此操作,但仍然得到“调用线程无法访问此对象,因为不同的线程拥有它”-i.Source = s; 处的错误消息。这样做的正确方法是什么?
void OnEvent(object sender, EventArgs e)
{
ImageSource s = e.Image;
Dispatcher.BeginInvoke((Action)(
() => UpdateUI(myImage, s)
));
}
void UpdateUI(Image i, ImageSource s)
{
i.Source = s;
}
非常感谢您的任何建议!
【问题讨论】:
-
您在当前线程上调度,而不是 UI 线程。您首先需要访问 UI 线程调度程序。您从哪种对象中调度?
标签: c# wpf multithreading dispatcher