Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?
... << RSDN@Home 1.2.0 alpha rev. 787>>
специализация — удел насекомых... (с) Р. Хайнлайн
Re: [C#] Функция, выполняемая при завершении приложения
Здравствуйте, hVostt, Вы писали:
V>Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?
Напишите второе приложение которое, будет следить за первым.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: [C#] Функция, выполняемая при завершении приложения
Здравствуйте, TK, Вы писали:
V>>Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?
TK>Напишите второе приложение которое, будет следить за первым.
А чтобы оно гарантировно отработало — напишите третье, следящее за вторым.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[3]: [C#] Функция, выполняемая при завершении приложения
Здравствуйте, TK, Вы писали:
V>>Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?
TK>Напишите второе приложение которое, будет следить за первым.
"Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят." (c) ваша подпись
Я понимаю, что хочу странного, но думал это возможно на уровне CLR.
... << RSDN@Home 1.2.0 alpha rev. 787>>
специализация — удел насекомых... (с) Р. Хайнлайн
Re[3]: [C#] Функция, выполняемая при завершении приложения
Здравствуйте, hVostt, Вы писали:
V>Здравствуйте, TK, Вы писали:
V>>>Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?
TK>>Напишите второе приложение которое, будет следить за первым.
V>"Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят." (c) ваша подпись
V>Я понимаю, что хочу странного, но думал это возможно на уровне CLR.
невозможно ни на каком уровне кроме как через "смотрящих собачек" — при kill/terminate приложение не получает никакой информации о том, что его убивают.
А при штатном выходе — можно в Main() в последнем операторе сообщить все, что кому-то надо
... << RSDN@Home 1.2.0 alpha rev. 790>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[4]: [C#] Функция, выполняемая при завершении приложения
Здравствуйте, Димчанский, Вы писали:
L>>А чтобы оно гарантировно отработало — напишите третье, следящее за вторым.
Д>Без четвертого приложения не обойтись, иначе не будет бригады.
а чтобы четвертое гарантированно отработало напишите 4 сервиса — три будут следить за четвертым приложением (троирование), а четвертый будет следить за первыми тремя сервисами.
Возможно прийдется даже модифицировать ядро Windows, чтобы обеспечить надежную работу четвертого сервиса...
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[4]: [C#] Функция, выполняемая при завершении приложения
Здравствуйте, Hacker_Delphi, Вы писали:
H_D>невозможно ни на каком уровне кроме как через "смотрящих собачек" — при kill/terminate приложение не получает никакой информации о том, что его убивают.
невозможного небывает, от TerminateProcess можно защититься банальным перехватом этой функции..
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[5]: [C#] Функция, выполняемая при завершении приложения
к примеру в перехватчике TerminateProcess можно вызвать свой механизм уведомления процесса, дождаться завершения вызова, после чего передать управление в реальный TerminateProcess
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[6]: [C#] Функция, выполняемая при завершении приложения
Здравствуйте, _Morpheus_, Вы писали:
_M_>к примеру в перехватчике TerminateProcess можно вызвать свой механизм уведомления процесса, дождаться завершения вызова, после чего передать управление в реальный TerminateProcess
Ну штатных-то средств нету
... << RSDN@Home 1.2.0 alpha rev. 790>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))