UWP在多线程中更新UI

我们在编程的时候,经常思路是比较直接的,一开始会经常在线程里面去更新界面上元素,然后VS就给我们报错 “不能修改由其他线程创建的对象”。

在WPF中,我们会简单地通过调用dispatch的方式在线程中更新UI

Application.Current.Dispatcher.Invoke(()=>{
 
    //update UI code
 
});

在UWP中,其实也很简单,只需要多一个函数设置即可。

//在MainPage的后台code里面添加这个申明
public async void Invoke(Action action, Windows.UI.Core.CoreDispatcherPriority Priority = Windows.UI.Core.CoreDispatcherPriority.Normal)
{
       await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Priority, () => { action(); });
}

//在线程函数里面如下调用
this.Invoke(()=>
{
    //update UI code
     Label.Text="process completed!";
});

原文来自下面链接,这里仅作为自己的笔记。

UWP(3) 后台线程如何更新UI_小彰的博客-CSDN博客对于WPF来说更新UI使用到Dispatcher ,在UWP也一样,只是写法有以下差异而已。WPF:Application.Current.Dispatcher.Invoke(()=>{//update UI code});UWP:https://blog.csdn.net/yhz815/article/details/76638836 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值