【发布时间】:2012-05-02 04:21:50
【问题描述】:
在我正在创建的应用程序中,我有两个组件希望用户能够暂停/恢复。我想知道可能存在哪些标准模式来支持暂停和恢复,如果有的话?这两个组件都执行大量网络 I/O。看起来,在高层次上,我必须坚持每个组件当前的工作队列——但坚持它是我在寻找这些标准模式的地方吗?我是否序列化组件本身?我是否只对作品进行序列化?我序列化为什么格式(xml、数据库等)? .NET 内置的哪些内容可能会有所帮助?有没有图书馆可以帮助解决这个问题?如果用户只是在同一个应用程序会话中暂停/恢复,或者他们在打开、关闭然后再次打开应用程序后暂停/恢复,是否有任何差异需要考虑?将这些信息保存在不同的计算机上怎么样?
从过去的经验或想到的模式有什么建议吗?我希望这会变成更多关于执行此操作的各种方法以及每种方法的优缺点的讨论。谢谢。
【问题讨论】:
-
你只是暂停组件之间的通信,“工作”会继续积累,还是工作也暂停?如果暂停的工作需要在应用程序终止后继续存在,它肯定会有所作为。消息队列将允许您累积工作(消息)而不会丢失应用程序终止的风险,但可能是比所需更重的解决方案。
-
Scott - 不,应用程序暂停时工作不会累积。你能解释一下如果应用程序被终止,消息队列将如何生存吗?也许提供有关您所指的此消息队列结构的更多详细信息?我的两个组件都已经有工作队列,但是如果应用程序关闭,它们将无法生存。谢谢。
标签: c# design-patterns serialization