【发布时间】:2011-04-28 00:27:50
【问题描述】:
我在使用独立存储时遇到了一些意外行为。在这种情况下,我使用它来维护状态以用于墓碑。
这是一款业余无线电执照考试练习应用。这就是发生的事情。当应用程序第一次运行时,用户在 MainPage 上,并选择两个链接之一,OptionPage1 或 OptionPage2(它们的工作方式类似,所以我只关注一个)。在 OptionsPage1 上,用户从多个选项中进行选择,然后单击 Launch 按钮转到 ExamPage,用户在此回答问题。完成考试后,用户前往 ScorePage 查看分数。完成此操作后,其中一个选项是单击按钮返回主页面。
每次用户选择某个操作时,隔离存储中的文件都会使用隔离存储处理类库中的静态方法进行更新。我观察到一个非常奇怪的行为。当用户单击返回 MainPage 时,ScorePage 保存其状态时,它会将位置存储为“MainPage”,因为这是用户在下一毫秒内将到达的位置。但是,MainPage在读取ScorePage刚刚保存的隔离存储文件时,并没有ScorePage保存的内容!它具有由 OptionPage1 保存的内容!我知道 ScorePage 正在正确保存信息,因为我在保存后立即尝试阅读它并且没问题。
看起来可能有不同版本的文件正在创建和更新。但这没有任何意义。每个页面都使用完全相同的静态方法来保存和更新隔离的存储文件,并且只有一个文件夹和文件名。我很困惑。
【问题讨论】:
-
如果不能看到代码,就很难说会发生什么。您能否发布您的辅助方法并演示它们如何在您应用的不同页面中使用。
-
这可能是一种竞争条件吗?你是异步保存的吗?
标签: windows-phone-7 isolatedstorage