在Silverlight中,如何在主调度线程上调用操作?

5
在WinForms UserControl中,我可以通过从控件的任何方法调用this.BeginInvoke()来将数据传递给主GUI线程。在Silverlight UserControl中有什么等效的方法呢?
换句话说,我如何处理由任意工作线程提供的数据并确保它在主显示线程上得到处理?
2个回答

6

使用UserControl类的Dispatcher属性。

private void UpdateStatus()
{
  this.Dispatcher.BeginInvoke( delegate { StatusLabel.Text = "Updated"; });
}

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";
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接