从后台线程通知UI线程

本文关键字:线程 UI 通知 后台 | 更新日期: 2023-09-27 18:02:44

我正在后台下载一些页面,这些页面的内容将被插入到数据库中。

我需要在某种类型的后台线程上这样做(BackgroundWorker或ThreadPool,由于我可以排队的方式,这是首选),但我也需要在工作完成时更新UI。

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

我看到有人使用Dispatcher。beginInvoke,但不清楚他使用的是什么(Worker还是Pool)——这是正确的方法吗?

从后台线程通知UI线程

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

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

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

这是你需要使用的代码,实际上这是你可以从另一个线程在UI线程上运行一段代码的方式(不管这个线程是如何运行的,在哪里运行的)

或者,如果您使用MVVM,您可以从UI线程更新视图模型,并让INotifyPropertyChanged的魔力处理为您更新UI