我正在创建一个小型WP8应用程序,它更新从接收数据并显示给用户。
现在,我有了一个单独的线程,它的工作是与azure服务交互,获取数据并使用数据更新UI,而主UI线程正在做其他事情。
我试过以下方法但失败了..。
BackgroundWorker线程,但是当我调用Azure移动服务等待方法时,工作线程调用它已完成的事件,然后当我调用ProgressChanged事件时,它会异常失败:操作已经完成有人能帮帮我吗?
发布于 2013-07-11 17:06:10
您可以通过使用dispatcher的BeginInvoke方法从一个单独的线程更新UI:
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
//Update the UI controls here
});确切地说,它不会从单独的线程中实际更新UI,但是它会对操作进行排队,这样主线程就可以在可用时执行它。
发布于 2013-07-13 00:05:29
由于您正在使用Azure移动服务提供的async方法,所以您可以自己使用async方法。不需要工作线程或后台线程。
private async Task UpdateUI()
{
var result = await MyAzureMobileServiceCall();
MyUIElement.DataContext = result;
}https://stackoverflow.com/questions/17599057
复制相似问题