我尝试再次调用两次然后再从anther对象调用。
public void Show()
{
if (mainGrid == null)
return;
if (!Dispatcher.CheckAccess())
{
Dispatcher.BeginInvoke(new ThreadStart(delegate() { Show(); }), DispatcherPriority.Background);
return;
}
mainGrid.Children.Add(rec);
rec.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
rec.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
mainGrid.Children.Add(this);
this.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
this.VerticalAlignment = System.Windows.VerticalAlignment.Center;
}
两个对象B,C从A继承此函数: 当我从进程调用B.show()然后从Thread和C.show()调用B.showStop()时我从C.show()使用特权main.children.Add(..)获得异常 请帮我解决这个问题。
答案 0 :(得分:1)
我认为您应该提供有关您问题的更多信息,例如:
但是目前我认为问题可能是你在UI线程中实例化那些可视对象:如果你在workerthread上创建了一个Button,它将拥有该线程Dispatcher,它与UI Thread不同调度员。
我无法用这么少的信息告诉你发生了什么,但我认为你添加了两个在不同线程上创建的控件,因此两个Add
中的一个会给你一个例外。