Windows phone 7 在应用程序启动后立即使用隔离存储似乎会导致稳定性问题

Windows phone 7 在应用程序启动后立即使用隔离存储似乎会导致稳定性问题,windows-phone-7,Windows Phone 7,我正在尝试向WP7应用程序添加跟踪应用程序使用情况的支持(例如,该应用程序运行了多少次,包括从墓碑中唤醒)。我以为我是以一种非常直截了当的方式来做这件事的,但是我经常会遇到孤立的存储异常,我现在有点不知所措地调试它 从我的App.xaml.cs转述 private void HandleAppCounter() { int i = 0; settings.TryGetValue<int>("usage", out i); i++; settings["usage"]

我正在尝试向WP7应用程序添加跟踪应用程序使用情况的支持(例如,该应用程序运行了多少次,包括从墓碑中唤醒)。我以为我是以一种非常直截了当的方式来做这件事的,但是我经常会遇到孤立的存储异常,我现在有点不知所措地调试它

从我的App.xaml.cs转述

private void HandleAppCounter() {
  int i = 0;
  settings.TryGetValue<int>("usage", out i);
  i++;

  settings["usage"] = i;
  settings.Save();
}
private void HandleAppCounter(){
int i=0;
设置.TryGetValue(“用法”,输出i);
i++;
设置[“使用”]=i;
设置。保存();
}
我在应用程序启动或激活时调用此功能。问题是,它工作得很好。但问题是,如果我很快再打一个电话到隔离存储,那就是爆炸的原因。而且,似乎只有在下一个电话很快打到之后,它才会爆炸。。虽然我也很难理解这一点

执行的下一个操作通常是用户单击列表中的项目。如果它在显示时立即发生,我会从隔离存储中得到一个崩溃。如果用户在应用程序启动后等待几秒钟,然后单击它,则不会发生崩溃

如果上面HandleAppCounter()中的代码被注释掉,那么用户可以立即或稍后单击,并且不会崩溃


有人能给我一些关于如何调试这个的提示吗?我在这里遇到了一堵墙。

我建议暂时不要使用自定义实现,对默认的
IsolatedStorageSettings
类尝试相同的行为,如果仍然存在问题,则应将其作为错误报告给
Microsoft Connect
站点,否则,设置类中会出现某种错误

如果使用的是
IsolatedStorageSettings
,则可能需要确保无论何时查询/添加密钥,该密钥都在那里,否则必须创建它


如果您使用的是
IsolatedStorage
文件系统,那么请确保在读/写时始终关闭流。如果不这样做,就会出现荒谬的异常。

另外,因为感觉如果用户点击太快就会发生崩溃,所以我尝试过延迟保存到独立存储的操作。但就我目前所知,这似乎并没有解决任何问题。您使用的是可公开访问的IsolatedStorageSettings实例吗?你以后如何在应用程序中调用设置?我有一个名为StorageFacade的类,它为我做这件事。它有一些方法可以为我获取和设置设置。例如,setter调用IsolatedStorageSettings.ApplicationSettings[key]=value;IsolatedStorageSettings.ApplicationSettings.Save();到现在为止,我从来没有遇到过任何问题。我想知道现在不同的是,我在应用程序启动或唤醒时这样做。发布你的StorageFacade类会有所帮助