Выгрузить все состояние процесса на диск и загрузить обратно при необходимости

У меня есть приложение C #, которое принимает задания на основе нескольких событий

Как файловый наблюдатель, события, основанные на времени и т. Д.

Но в жизненном цикле приложения наступит время, когда оно будет частично обрабатывать ресурсы, забирать их в ОЗУ. А потом будет ждать, когда произойдет событие. Но до этого события процесс будет содержать 1,2 ГБ ОЗУ (скажем).

В это время процесс не может быть остановлен, и этот процесс должен принять больше заданий.

Мой вопрос:

Можем ли мы выгрузить все состояние этого процесса на диск и в более поздний момент (скажем, через 6 часов), когда это событие произойдет, перезапустить процесс, используя этот файл дампа, чтобы все состояние было загружено, а затем «продолжить» выполнение с этого момента.

Использование .net 4.0 Vs2010 / vs2015 C #

Я прочитал это: https://msdn.microsoft.com/en-IN/library/d5zhxt22.aspx#

Но продолжать этот процесс не вариант.

Пожалуйста посоветуй


person ankur    schedule 08.07.2016    source источник
comment
Если все потоки процесса ожидают и ничего не касается памяти, практически вся память в любом случае будет выгружена в файл подкачки. Процессы (обычно) не потребляют оперативную память - они используют собственное адресное пространство. ОС решает, что будет использовать физическую память, если вы позволите ей это сделать.   -  person Damien_The_Unbeliever    schedule 08.07.2016
comment
возможно, я не очень хорошо это объяснил. предположим, что только что был обработан файл размером 800 МБ. теперь он хранится в словаре. и мне нужно подождать, пока это событие не произойдет, чтобы можно было прочитать другой файл и, следовательно, объединить. я думаю, процесс будет потреблять оперативную память.   -  person ankur    schedule 08.07.2016
comment
@Damien_The_Unbeliever: не могли бы вы посоветовать.   -  person ankur    schedule 09.07.2016