我使用以下方法浏览我的通用Windows 8.1 / Windows Phone 8.1应用程序:
((Frame)Window.Current.Content).Navigate()
导航时用户报告了一些崩溃事件。特别严重的是一个第三方计划组件,每当有人从它(通过点击预约)导航到另一个页面时几乎崩溃。
供应商告诉我们也将我们的导航包装在调度员中。
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { `((Frame)Window.Current.Content).Navigate() });`
这确实减轻了关于进度控制的错误。由此可以看出导航是否在各种情况下都有所改善。它有一个严重的缺点,即人们仍然可以在很短的时间内与元素进行交互,直到现在进行导航。
这是最好的做法,真的是必要的,还是一个特殊的角落?
当我们尝试使用HasThreadAccess将调度的调用限制为必要的调用时,仍然会发生崩溃。
答案 0 :(得分:0)
默认情况下,所有XAML及其代码隐藏都归主线程(UI线程)所有。此外,不需要调度在主线程上创建的任何对象。您看到的问题很可能是由尝试调用UI线程进行导航的后台线程/任务引起的。