从后台通知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。