Nip*_*pun 2 c# user-interface multithreading windows-phone-8
我正在创建一个小型WP8应用程序,它可以更新从Windows Azure移动服务接收数据并将其显示给用户.
现在我有一个单独的线程,其工作是与azure服务交互获取数据并使用数据更新UI,而主UI线程正在执行其他操作.
我尝试了以下方法,但失败了......
创建了一个单独的线程但该线程无法更新UI,因为它无法访问控件
创建了一个BackgroundWorker线程,但是当我调用Azure移动服务等待方法时,工作线程调用其已完成的事件,然后当我调用该ProgressChanged事件时它失败并出现异常:操作已经完成
有人可以帮帮我吗?
您可以使用BeginInvoke调度程序的方法从单独的线程更新UI :
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
//Update the UI controls here
});
Run Code Online (Sandbox Code Playgroud)
确切地说,它实际上不会从单独的线程更新UI,但它会对操作进行排队,以便主线程可以在可用时执行它.
| 归档时间: |
|
| 查看次数: |
1431 次 |
| 最近记录: |