我一直在寻找的暂停和恢复.Net应用程序为晚,特别是眼睛朝着能暂停的应用程序,存储其状态的能力,稍后再启动它。自定义CLR主机 - “暂停” /“恢复”应用
我一直在寻找通过编写自定义CLR主机,一个神秘的艺术,以确保所提供的选项。看起来,一个自定义的主机可以提供自己的任务,内存管理,锁等实现。因此,看起来我可能会创建一个自定义的CLR主机,可以通过ICLRTask暂停和恢复应用程序,但我' m不确定提供的接口是否有足够的挂钩来暂停所有任务,将整个程序状态存储到磁盘,然后在稍后将应用程序恢复生效。有人可以明确告诉我,这根本不可能?我也不介意它是否仅适用于一小部分应用程序,我只是对这里的可能性感到好奇。
首先,我对自定义CLR主机一无所知,所以这都是猜测。 思考它如何工作,我认为它只适用于一部分应用程序。这是因为文件句柄或其他系统资源在恢复程序时可能不存在。您的主机或您的应用程序必须足够聪明才能知道尝试重新请求这些外部资源。如果您不得不对主机进行更改以支持主机,那么我认为您首先不需要主机,因此无论如何您的应用都可以暂停并恢复。 – Steve
Workflow Foundation(http://msdn.microsoft.com/zh-cn/netframework/aa663328.aspx)怎么样?这允许工作停止并被序列化,以后继续。这里有漂亮的图片:http://msdn.microsoft.com/en-us/library/dd851337.aspx。 – Govert
@Govert我对Workflow Foundation感到颇为赞赏。我在这整个谈话中发现的一些东西是关于持久迭代器概念的链接。有点不好意思,但我想我可以用它做一些好事...链接在这里:http://dotnet.agilekiwi.com/blog/2007/05/implementing-workflow-with-persistent。 html –