在 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 中实现回滚事务的主要内容,如果未能解决你的问题,请参考以下文章

使用 AWS CLI 时发布的错误中更新 cloudformation 堆栈时出现回滚错误

事务隔离级别小记

java 事务

spring事务会导致全局变量回滚么

spring中啥样的异常会造成事务回滚?!

ROLLBACK语句只能针对未提交的事务进行回滚操作,已提交的事务是不能回滚的?