3

我正在开发一个 Windows 8 应用商店应用程序。我有一个计时器,它每两分钟调用一次委托并发出异步 Web 请求。结果数据被添加到绑定到 UI 元素的 observablecollection 中。这样做会引发异常,因为 UI 正在非 UI 线程上进行修改。在我的代码的其他地方,我已经这样做了

await Window.Current.CoreWindow.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, async () =>
{
    ui code here
}

但这会导致 Window.Current 为空时崩溃。我尝试将 Window.Current 作为参数传递给委托,但这会引发不同的异常。关于如何解决这个问题有什么建议吗?

4

2 回答 2

4

让 UI 线程调用后台操作通常比让后台操作更新 UI 线程更容易。

所以,我建议你使用DispatcherTimer,然后你根本不需要使用Dispatcher

于 2013-09-18T12:56:17.377 回答
0

尝试使用

Deployment.Current.Dispatcher.BeginInvoke

或者

Application.Current.Dispatcher.BeginInvoke
于 2013-09-18T12:58:45.170 回答