Уведомлять о потоке пользовательского интерфейса из фонового потока

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

Мне нужно сделать это в фоновом потоке какого-либо типа (либо BackgroundWorker, либо ThreadPool, что является предпочтительным из-за того, что я могу поставить очередь в очередь), но мне также нужно обновить интерфейс, когда выполняются задания.

Как я могу уведомить поток пользовательского интерфейса о том, что задания завершены на Windows Phone?

Я видел, как кто-то использовал Dispatcher.beginInvoke, но было непонятно, что он использовал (рабочий или пул) - это правильный способ сделать это?

Ответы

Ответ 1

 Deployment.Current.Dispatcher.BeginInvoke(() =>
 {
      // change UI here
 });

Dispatcher позволяет запускать кусок кода в потоке.

Deployment класс предоставляет информацию о приложении приложения на основе Silverlight.

это код, который вам нужно использовать, на самом деле так вы можете запускать кусок кода в потоке пользовательского интерфейса из другого потока (независимо от того, как и где работает этот поток).

Ответ 2

В качестве альтернативы, если вы используете MVVM, вы можете обновить viewmodel от потока пользовательского интерфейса и позволить магии обработчика INotifyPropertyChanged обновлять пользовательский интерфейс для вас.