C# 从异步函数更新Windows phone UI

C# 从异步函数更新Windows phone UI,c#,mvvm,windows-phone-8.1,async-await,C#,Mvvm,Windows Phone 8.1,Async Await,我正在尝试更新windows phone应用程序中的视图模型。但是在更新视图模型时,UI不会得到更新 var response = await request.GetResponseAsync(); Stream source = response.GetResponseStream(); this.viewModel.VideoDownloadPercentage = 50; 尽管下面的代码能够更新UI var respons

我正在尝试更新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,而将其放在之后则不会更新?

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

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

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


原始post:

在执行
await
指令后,将在UI线程上重新执行(如果从UI线程调用)。应用程序挂起了吗?是否有任何异常被抛出?