我试图在WP7应用程序中添加对跟踪应用程序使用情况的支持(例如,应用程序运行了多少次,包括从tombstoning中唤醒)。我以为我是以一种非常直截了当的方式做这件事的,但我经常得到IsolatedStorageExceptions,现在我对调试它有点不知所措。
从我的App.xaml.cs转述
private void HandleAppCounter() {
int i = 0;
settings.TryGetValue<int>("usage", out i);
i++;
settings["usage"] = i;
settings.Save();
}当应用程序启动或激活时,我调用此功能。问题是,它运转得很好。但问题是,如果我在不久之后再打电话到隔离仓库,那就是爆炸的原因。而且,似乎只有在下一个电话发生后不久才会爆炸。虽然我也很难理解。
执行的下一个操作通常是用户单击列表中的项。如果它在显示时立即发生,我就会从隔离存储中得到一个崩溃。如果用户在应用程序启动后等待几秒钟,然后单击该应用程序,则不会出现崩溃。
如果HandleAppCounter()中的上述代码被注释掉,那么用户可以立即或稍后单击,并且不会崩溃。
有人能给我一些关于如何调试的建议吗?我在这撞到墙了。
发布于 2011-05-19 12:54:13
我建议您暂时离开自定义实现,对默认的IsolatedStorageSettings类尝试同样的行为,如果它仍然是一个问题,那么您应该将它作为一个bug报告给Microsoft Connect站点,否则设置类中会出现某种错误。
如果您正在使用IsolatedStorageSettings,您可能需要确保,每当您查询/添加一个键时,该键就在那里,如果不是,则必须创建它。
如果使用的是IsolatedStorage文件系统,那么确保在读写时始终关闭流。如果你不这样做,你会得到荒谬的例外。
https://stackoverflow.com/questions/5945053
复制相似问题