从后台通知UI线程线程

问题描述:

我想在后台下载一些页面,其内容将被插入到数据库中。从后台通知UI线程线程

我需要在某种背景线程上执行此操作(无论是BackgroundWorker还是ThreadPool,由于我可以对队列进行排队,这是首选),但我还需要在作业完成时更新UI。

如何在Windows Phone上通知UI线程作业已完成?

我见过有人使用Dispatcher.beginInvoke,但不清楚他在使用什么(工作者或池) - 这是做这件事的正确方法吗?

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

Dispatcher允许您在线程上运行一段代码。

Deployment class提供基于silverlight的应用程序的应用程序信息。

这是您需要使用的代码,实际上这是您可以从另一个线程(无论该线程运行的方式和位置)在UI线程上运行一段代码的方式。

或者,如果您使用的是MVVM,则可以从UI线程更新视图模型,并让INotifyPropertyChanged的魔术为您更新UI。