我收到此错误:
不能使用属于与其父 Freezable 不同的线程的 DependencyObject
那有什么意思?是英文的吗?父母是冻结的,还是只是可冻结的?如果它使错误消失,有什么方法可以使父母不可冻结?
发生了什么:
我在一个 WPF 应用程序中有两个 opengl winforms 控件,到目前为止,一切都很顺利(我认为)。现在,我添加了一个更新,这样当一个 winform 控件更新图像时,另一个也应该更新。这实际上曾经有效,现在我得到了那个错误。单步执行代码会在随机位置发生崩溃,这让我相信这是垃圾收集错误(即,另一个线程中的某些更新正在创建正在收集垃圾的东西,并且该收集是在随机时间发生的)。
异常在主运行方法中被捕获,它是一个 InvalidOperationException。
我在这里抓着稻草。我从哪里开始?
编辑:看起来导致问题的调用是这个:
if (imagePanel.InvokeRequired)
{
imagePanel.Invoke(new System.Windows.Forms.MethodInvoker(delegate{
imagePanel.ClearImages();
}));
}
else
{
imagePanel.ClearImages();
}
我仍在追踪它;如果这一系列行被注释掉,崩溃仍然会发生,并且线程状态有一个“刚刚结束”的线程(因此是垃圾收集假设)。