Windows phone UI从async函数更新

本文关键字:函数 更新 async phone UI Windows | 更新日期: 2023-09-27 18:07:08

我正在尝试更新windows phone应用程序中的视图模型。但是在更新视图模型时,UI没有得到更新。

        var response = await request.GetResponseAsync();
        Stream source = response.GetResponseStream();
        this.viewModel.VideoDownloadPercentage = 50;

虽然下面的代码能够更新UI

       var response = await request.GetResponseAsync();
       this.viewModel.VideoDownloadPercentage = 50;
       Stream source = response.GetResponseStream();

谁能提供指针为什么把viewModel之前GetResponseAsync更新UI,但把它之后没有?

Windows phone UI从async函数更新

直接从异步线程更新UI是不允许的,因为UI控件不是线程安全的。

从异步线程更新UI最简单的方法是使用Dispatcher类。

要确定是否可以直接更新UI,可以使用CheckAccess()方法。如果这个方法返回true,就意味着你可以直接更新UI。否则,您必须使用Dispatcher类的BeginInvoke()方法以线程安全的方式更新UI。

原帖:Windows phone UI从async函数更新