在我正在创建的应用程序中,我有两个组件,我希望用户能够暂停/恢复。我想知道可能存在哪些标准模式来支持暂停和恢复,如果有的话?这两个组件都进行了大量的网络I / O.看起来,在高层次上,我必须坚持每个组件所具有的当前工作队列 - 但坚持它是我正在寻找这些标准模式的地方?我是否序列化组件本身?我只是序列化工作吗?我序列化为什么格式(xml,数据库等...)? .NET内置了什么可能会有所帮助?有没有图书馆可以帮忙解决这个问题?如果用户只是在同一应用会话中暂停/恢复,或者他们在打开,关闭然后再次打开应用程序后暂停/恢复,是否有任何差异需要考虑?如何在不同的计算机上保存这些信息呢?
根据过去的经验或模式提出的任何建议?我希望这更多地讨论了各种方法以及每种方法的优点/缺点。感谢。
答案 0 :(得分:1)
通过消息队列我的意思是MSMQ或其中一个兄弟。所有消息都将保留在某种数据库中,因此在应用程序重新启动时仍然可用。这种队列的主要目的是确保即使在通信间歇性和/或不可靠时也能传递消息。
听起来你可以让你的通信组件很容易地从MSMQ而不是当前的队列中工作。
如果这不适合您的应用程序,可能就像在终止时序列化现有队列中的对象一样简单,并在应用程序启动时再次对它们进行反序列化。如果幸存的意外终止很重要,则应始终在将对象添加到工作队列时对其进行序列化,但此时您可能希望再次查看现有的消息队列系统。
答案 1 :(得分:-1)
您可以实现线程并简单地相应地调用线程上的Suspend()和Resume()函数。