在 WP7 中实现回滚事务
Posted
技术标签:
【中文标题】在 WP7 中实现回滚事务【英文标题】:Implementing rollback transaction in WP7 【发布时间】:2011-12-27 12:55:53 【问题描述】:如何在 wp7 中实现回滚事务。目前我的问题是在插入或删除之后我调用提交更改,在那个时候如果我做了一个墓碑应用程序退出。我如何处理这种情况我打算使用 try catch 并且如果捕获到任何异常意味着我需要回滚更改。请任何人帮助我在 wp7 中实现相同的功能。
【问题讨论】:
【参考方案1】:为什么当应用程序成为墓碑时需要回滚?从技术上讲,您的应用程序不知道它何时被删除,您只知道它何时被停用。请参阅以下生命周期图:
(上图来自博文http://www.scottlogic.co.uk/blog/colin/2011/10/a-windows-phone-7-1-mango-mvvm-tombstoning-example/,详细描述了生命周期)
每当您的应用程序被停用时,您都可以处理 Deactivated 事件。来自MSDN:
应用程序有 10 秒的时间来完成 Deactivated 处理程序
这使您有机会在您的应用程序停用之前进行清理、保存状态和执行其他活动。
我认为当您的应用程序状态更改时您正在提交您的事务?提交是否在 UI 线程上运行?即它是否阻塞?如果是这样,您不需要做任何其他事情(除了确保不超过 10 秒)。如果您的提交在后台线程上运行,则必须确保您的 Deactivated 事件处理程序阻塞,直到提交完成。
【讨论】:
以上是关于在 WP7 中实现回滚事务的主要内容,如果未能解决你的问题,请参考以下文章