我正在开发一个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;)
在第54行的MainWindow.xaml.cs中发生异常。
答案 0 :(得分:0)
查看DispatcherPriority Enum是否可以提供帮助
Dispatcher.BeginInvoke((Action)(() =>
{
myCanvas.Children.Add(eventArgs.getImage());
}), System.Windows.Threading.DispatcherPriority.Background);