gpt4 book ai didi

c# - UWP 导航导致访问冲突

转载 作者:行者123 更新时间:2023-11-30 16:50:20 24 4
gpt4 key购买 nike

我正在将我的 WP 8.1 应用程序转换为 UWP,因为我对使用 prism 很感兴趣,所以我想我会从头开始构建我的应用程序。我创建了一个带有按钮的页面,该按钮可以导航到另一个页面,部署应用程序并试一试。当我点击按钮导航时执行以下代码

private void Button1_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(TestPage));
}

然后使应用程序崩溃。当我查看 VS2015 中的输出窗口时,我在底部看到以下内容。

程序“[4760] MyApp.exe”已退出,代码为 -1073741819 (0xc0000005)“访问冲突”。

两个页面都有 ViewModel,并使用 Prisms ViewModelLocator.AutoWireViewModel 进行设置。我尝试清除 ViewModel 的所有属性,使它们为空,没有代码,但什么也没做。在 View 模型构造函数中放置一个断点,它在调试时确实到达了这一点。

任何想法这意味着什么或在哪里看?

更新:问题看起来是由控件模板引起的。我通过注释掉所有 XAML 然后将内容一一添加回来,将问题缩小到按钮控件。然后我找到了导致问题的控件,因此删除了绑定(bind)和样式模板。重新添加绑定(bind),一切正常,重新添加模板,出现问题。

最佳答案

您可能需要使用调度程序在正确的线程上执行代码。

//Initiate and set this at the startup of your app, on the UI thread.
dispatcher = Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher;

然后使用调度器运行代码:

private async void Button1_Click(object sender, RoutedEventArgs e)
{
await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
this.Frame.Navigate(typeof(TestPage));
}

关于c# - UWP 导航导致访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com