调用线程…异常,尽管使用Dispatcher.Invoke

本文关键字:Dispatcher Invoke 线程 异常 调用 | 更新日期: 2023-09-27 18:02:36

我正在开发一个WPF应用程序。不详细说明:

myCanvas.Background = new SolidColorBrush(FILL);
myCanvas.Background = new SolidColorBrush(FILL);

将导致:

The calling thread cannot access this object because a different thread owns it.

所以明显的修复是:

this.Dispatcher.Invoke((Action)(() =>
{
    myCanvas.Background = new SolidColorBrush(FILL);
    myCanvas.Background = new SolidColorBrush(FILL);
}));

但是,这仍然会引发一个异常:

this.Dispatcher.Invoke((Action)(() =>
{
    myCanvas.Children.Add(eventArgs.getImage());
}));

知道为什么吗?

编辑:我将整个项目提交给:https://riouxsvn.com/svn/kinectfileexplo

请限制注释代码质量= thx;)

MainWindow.xaml.cs,第54行出现异常

调用线程…异常,尽管使用Dispatcher.Invoke

查看DispatcherPriority Enum是否有帮助

Dispatcher.BeginInvoke((Action)(() =>
        {
            myCanvas.Children.Add(eventArgs.getImage());
        }), System.Windows.Threading.DispatcherPriority.Background);