Я рассматривал возможность приостановки и возобновления приложения .Net в последнее время, особенно с прицелом на возможность приостановки приложения, сохранения его состояния , и запустите его позже.Пользовательский хост CLR - приложение «Пауза»/«Резюме»
Я смотрел варианты, предоставленные путем написания пользовательского хоста CLR, тайного искусства, чтобы быть уверенным. Похоже, что пользовательский хост может предоставить свои собственные реализации для задач, управления памятью, блокировок и т. Д. Таким образом, похоже, что я мог бы создать собственный хост CLR, который может приостановить и возобновить приложение через ICLRTask, m не уверен, что предоставленные интерфейсы имеют достаточно крючков для приостановки всех задач, сохранения всего состояния программы на диск и последующего оживления приложения в дальнейшем. Может кто-то окончательно сказать мне, что это вообще невозможно? Я также не возражаю, если это возможно только для небольшого подмножества приложений, мне просто интересно узнать о возможностях здесь.
Для начала я ничего не знаю о пользовательских хостах CLR, так что это все предположения. Думая о том, как он может работать, я думаю, что это будет работать только для подмножества приложений. Это происходит из-за таких вещей, как дескрипторы файлов или другие системные ресурсы, которые могут отсутствовать при возобновлении программы. Либо ваш хост, либо ваше приложение должны быть достаточно умны, чтобы знать, чтобы попытаться повторно запросить эти внешние ресурсы. И если вам нужно внести изменения в свое приложение для поддержки хоста, я не думаю, что вам нужен хост в первую очередь, потому что ваше приложение может приостановить и возобновить себя в любом случае. – Steve
Что касается Foundation Workflow Foundation (http://msdn.microsoft.com/en-us/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 –