我注意到,如果在WP7应用程序中我按下开始键然后快速返回键返回应用程序,并且非常快速地重复这些步骤,应用程序最终崩溃(它意外退出并且无法恢复它通过后退键)。这发生在设备上(从未在仿真器上看到),在应用程序关闭之前需要10-15步。 我遵循Microsoft有关保存/恢复其状态的指导原则。此外,我尝试过的所有其他应用程序也崩溃了。但是,有些应用程序比其他应用程序更难以杀死。在进行压力测试的实验中,我注意到
有谁知道这是一个已知问题还是其他什么? 如果不能完全消除这个问题,我会很感激如何让游戏更稳定。
答案 0 :(得分:1)
关于问题可能存在于De / -Serialization过程中的想法,你可以这样做:
private IsolatedStorageSettings isosettings = IsolatedStorageSettings.ApplicationSettings;
void Application_deactivated()
{
isosettings.Add("serialization_finished", false);//just add once,
//after that use isosettings["serialization_finished"]
//DO: save here your code into isostorage
isosettings["serialization_finished"] = true;
}
void Application_activated()
{
while (!isosettings["serialization_finished"])
Thread.Sleep(500);
//DO: read you data from isostorage
}
因此,您实际上构建了一个on / off开关来测试序列化过程是否已完成
旧:
墓碑有一个时间限制,他必须完成(10 秒)。我猜你在这里给了他那么多墓碑 在某一点上,应用程序的一个实例无法完成 墓碑及时。但那只是假设的前提 保存越多=崩溃越快。
您可以通过测量墓碑所需的时间来测试 并将数据写入孤立存储区。当你分析 数据并看到墓碑的时间增加(最多8-9 秒)你可以得出结论应该是时间。
另一方面,如果所需的时间永远不会增加并保持在其中 几秒钟,你可以安全地得出结论,它不应该是一个时间问题
答案 1 :(得分:1)
我找到了一种解决方法,使应用程序更加稳定。实际上,我们不希望每次在停用期间将游戏数据保存到隔离存储。只有在游戏状态发生变化时才需要它。由于我的游戏在被激活后自动暂停,它的状态没有改变,我不必再次保存其数据,直到用户恢复游戏。因此,将数据存储到隔离存储仅用于第一次停用。这种方法有所帮助,但不是太多。 “开始”键/“后退”键的20次迭代仍会使其停止运行。