1

我正在开发一个 Silverlight 应用程序,用户可以在其中创建、编辑、删除对象。他们所做的更改被放置在一个队列中,该队列每 4 分钟处理一次。处理后,更新通过异步 Web 方法调用发送,一次一个保存在 sql 数据库中。当第一次更新完成时,下一次更新开始。
当用户进行更改然后在 4 分钟计时器到期之前退出浏览器应用程序时,我遇到了问题。目前,更改正在丢失。

我建立在我之前从事此工作的人所做的工作的基础上,并探索了 Dispose 和 Finalize 方法,尝试在工厂关闭时启动更新过程,但由于 Web 服务调用的异步性质,这不起作用. 我收到错误消息,说需要的对象已被处理掉。

当用户尝试关闭或刷新网页时,我正在寻找一种使用 web 方法将数据保存在更新队列中的方法。我不希望队列中挤满了更新。这是一个通常一次运行几个小时的应用程序。

4

1 回答 1

1

您可以使用 Javascript 来阻止用户离开页面。StackOverflow 做到了(尝试编辑答案并离开页面)。这适用于浏览器关闭以及页面导航。通过 Javascript,您还可以通知 Silverlight 应用程序以保存任何排队的数据(Silverlight 支持向 Javascript 公开方法)。

问:对于 Silverlight 应用程序,每 4 分钟保存一次有点奇怪。我猜它一次只能由一个用户运行。是什么限制了您更频繁地储蓄?

于 2011-06-14T15:15:38.947 回答