gpt4 book ai didi

c# - Windows Phone 8.1 应用程序在不调试 Async Await 时崩溃

转载 作者:可可西里 更新时间:2023-11-01 12:42:09 26 4
gpt4 key购买 nike

我正在开发 Windows Phone 8.1 应用程序。我已经进入该项目大约一个月了,到目前为止我所写的内容几乎没有发现任何问题。

我决定在不通过 VS 2013 调试器运行的情况下对该应用程序进行一些测试。现在,出于某种原因,应用程序在到达第一个屏幕之前就崩溃了。我没有收到任何异常或消息(我正在使用 Raygun 进行错误记录)。

我一直在使用异步方法(一些 async void,其他 async Task),但所有这些在调试时都有效。

最主要的帮助是获取某种错误消息。我已经减少到注释掉部分代码,但最终这让我无处可去,因为似乎当我认为我已经找到问题时,我又在代码中进一步崩溃了。

有一次,我发现调用 ListView.UpdateLayout() 有问题。我对此进行了评论,该应用程序将正常运行而不会崩溃。然后我进一步取消注释了一些代码,现在它又崩溃了。

如果有人知道从电话中获取异常的方法,或者如果有人以前遇到过此问题,我们将不胜感激。我可以提供任何需要的进一步信息。

更新:我想我已经将问题缩小到 Sqlite.NET。我正在使用 Sqlite.Net for WinRT 以及名为 SqliteNetExtensions 的扩展。具体说法是

    DataContext.Context.Connection.Table<Message>().Where(m => m.ChannelID == channelID && m.ChannelID.Contains("C")).ToList();

如果我将其注释掉,该应用程序将毫无问题地运行。此 LINQ 语句最多返回 100 条记录。我不认为 100 条记录的 SELECT 语句会导致应用程序崩溃,但它似乎是罪魁祸首。关于如何优化 Sqlite.NET 有什么想法吗?

更新 2:终于想通了!它根本不是 SQLite。这根本不是我的代码。那是我的电话。我正在运行诺基亚 Lumia Icon。几周前我安装了 Rudy Huyn 的 Lockscreen Beta。当我卸载它时它引起了一些问题,但它与我的应用程序无关。今天,我让我的商业伙伴在他的手机上安装了我的应用程序,他有相同型号的手机。该应用程序快了大约 50 倍,并且没有崩溃。我从工厂恢复了我的手机,你瞧,它运行完美。所以,专业提示:不要安装 RUDY HUYN 的锁屏测试版!!!

最佳答案

顺便说一句,我会花时间确保您始终避免使用 async void。有据可查的是,async void 通常会带来麻烦。

缺点有一篇很好的说明here

关于c# - Windows Phone 8.1 应用程序在不调试 Async Await 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25693494/

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