在WinForms UserControl中,我会通过从任何控件的方法调用this.BeginInvoke()将数据传递给主GUI线程。什么是Silverlight UserControl中的等价物?
换句话说,如何获取任意工作线程提供的数据并确保在主显示线程上处理它?</ p>
答案 0 :(得分:6)
在UserControl类上使用Dispatcher属性。
private void UpdateStatus()
{
this.Dispatcher.BeginInvoke( delegate { StatusLabel.Text = "Updated"; });
}
答案 1 :(得分:2)
private void UpdateStatus()
{
// check if we not in main thread
if(!this.Dispatcher.CheckAccess())
{
// call same method in main thread
this.Dispatcher.BeginInvoke( UpdateStatus );
return;
}
// in main thread now
StatusLabel.Text = "Updated";
}