[C#] Функция, выполняемая при завершении приложения
От: hVostt Россия http://hvostt.ru
Дата: 20.02.08 07:21
Оценка:
Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?
... << RSDN@Home 1.2.0 alpha rev. 787>>
специализация — удел насекомых... (с) Р. Хайнлайн
Re: [C#] Функция, выполняемая при завершении приложения
От: TK Лес кывт.рф
Дата: 20.02.08 07:36
Оценка: +1
Здравствуйте, hVostt, Вы писали:

V>Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?


Напишите второе приложение которое, будет следить за первым.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: [C#] Функция, выполняемая при завершении приложения
От: Lloyd Россия  
Дата: 20.02.08 07:37
Оценка: :)
Здравствуйте, TK, Вы писали:

V>>Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?


TK>Напишите второе приложение которое, будет следить за первым.


А чтобы оно гарантировно отработало — напишите третье, следящее за вторым.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[3]: [C#] Функция, выполняемая при завершении приложения
От: Димчанский Литва http://dimchansky.github.io/
Дата: 20.02.08 08:03
Оценка: :)
Здравствуйте, Lloyd, Вы писали:

L>А чтобы оно гарантировно отработало — напишите третье, следящее за вторым.


Без четвертого приложения не обойтись, иначе не будет бригады.

"И во всем этом д@рьме прикрывать вас буду я" (c) фильм "Бригада"
Re[2]: [C#] Функция, выполняемая при завершении приложения
От: hVostt Россия http://hvostt.ru
Дата: 20.02.08 08:41
Оценка:
Здравствуйте, TK, Вы писали:

V>>Подскажите пожалуйста, как задать функцию, которая гарантировано выполнилась бы при любом завершении приложения, даже в случае критического сбоя, process kill, terminate и прочих ситуациях?


TK>Напишите второе приложение которое, будет следить за первым.


"Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят." (c) ваша подпись

Я понимаю, что хочу странного, но думал это возможно на уровне CLR.
... << RSDN@Home 1.2.0 alpha rev. 787>>
специализация — удел насекомых... (с) Р. Хайнлайн
Re[3]: [C#] Функция, выполняемая при завершении приложения
От: TK Лес кывт.рф
Дата: 20.02.08 08:47
Оценка: 2 (1) +1
Здравствуйте, hVostt, Вы писали:

V>Я понимаю, что хочу странного, но думал это возможно на уровне CLR.


На уровне CLR можно использовать CriticalFinalizerObject но, от принудительного завершения процесса это мало поможет...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: [C#] Функция, выполняемая при завершении приложения
От: Hacker_Delphi Россия  
Дата: 20.02.08 09:46
Оценка:
Здравствуйте, 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#] Функция, выполняемая при завершении приложения
От: _Morpheus_  
Дата: 20.02.08 10:33
Оценка:
Здравствуйте, Димчанский, Вы писали:

L>>А чтобы оно гарантировно отработало — напишите третье, следящее за вторым.


Д>Без четвертого приложения не обойтись, иначе не будет бригады.


а чтобы четвертое гарантированно отработало напишите 4 сервиса — три будут следить за четвертым приложением (троирование), а четвертый будет следить за первыми тремя сервисами.
Возможно прийдется даже модифицировать ядро Windows, чтобы обеспечить надежную работу четвертого сервиса...
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[4]: [C#] Функция, выполняемая при завершении приложения
От: _Morpheus_  
Дата: 20.02.08 10:35
Оценка: 1 (1)
Здравствуйте, Hacker_Delphi, Вы писали:

H_D>невозможно ни на каком уровне кроме как через "смотрящих собачек" — при kill/terminate приложение не получает никакой информации о том, что его убивают.


невозможного небывает, от TerminateProcess можно защититься банальным перехватом этой функции..
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[5]: [C#] Функция, выполняемая при завершении приложения
От: _Morpheus_  
Дата: 20.02.08 10:37
Оценка:
к примеру в перехватчике TerminateProcess можно вызвать свой механизм уведомления процесса, дождаться завершения вызова, после чего передать управление в реальный TerminateProcess
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[6]: [C#] Функция, выполняемая при завершении приложения
От: Hacker_Delphi Россия  
Дата: 20.02.08 11:47
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

_M_>к примеру в перехватчике TerminateProcess можно вызвать свой механизм уведомления процесса, дождаться завершения вызова, после чего передать управление в реальный TerminateProcess


Ну штатных-то средств нету
... << RSDN@Home 1.2.0 alpha rev. 790>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.