【问题标题】:Notify the UI Thread from Background Thread从后台线程通知 UI 线程
【发布时间】:2023-04-05 07:11:01
【问题描述】:

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

我需要在某种后台线程上执行此操作(BackgroundWorker 或 ThreadPool,由于我可以将事情排队的方式,这是首选),但我还需要在作业完成后更新 UI。

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

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

【问题讨论】:

    标签: c# multithreading silverlight windows-phone-7


    【解决方案1】:
     Deployment.Current.Dispatcher.BeginInvoke(() =>
     {
          // change UI here
     });
    

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-04
        • 2012-04-24
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 2015-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多