Как System.Windows.Threading.Dispatcher в основном потоке пользовательского интерфейса доступен из других потоков? - PullRequest
1 голос
/ 27 июля 2010

Я прочитал, что мы не можем получить доступ к чему-либо в главном потоке пользовательского интерфейса в приложении Silverlight из других рабочих потоков.

Так почему можно получить доступ к объекту класса System.Windows.Threading.Dispatcherсвязан с основным потоком пользовательского интерфейса из других рабочих потоков, когда мы хотим делегировать некоторую работу, выполняемую в пользовательском интерфейсе?

public partial class DispatcherExample : UserControl
{
  public void AnyFunctionExecutingInSomeOtherThread()
  {
    this.Dispatcher.BeginInvoke(SomeDelegate);
  }
}

1 Ответ

4 голосов
/ 27 июля 2010
Доступ к экземпляру

A Dispatcher возможен из любого потока, поскольку он не имеет привязки к потоку. Если бы он имел сродство к потоку, он был бы по существу бесполезным, потому что его основная причина - отправлять сообщения в нужный поток из любого потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...