В Silverlight, как вызвать операцию в главном потоке рассылки? - PullRequest
5 голосов
/ 21 октября 2008

В WinForms UserControl я передаю данные в основной поток GUI, вызывая this.BeginInvoke () из любого из методов элемента управления. Что такое эквивалент в Silverlight UserControl?

Другими словами, как я могу взять данные, предоставленные произвольным рабочим потоком, и обеспечить их обработку в основном потоке диспетчеризации?

Ответы [ 2 ]

6 голосов
/ 21 октября 2008

Используйте свойство Dispatcher в классе UserControl.

private void UpdateStatus()
{
  this.Dispatcher.BeginInvoke( delegate { StatusLabel.Text = "Updated"; });
}
2 голосов
/ 13 августа 2011
    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";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...