Как понять что консольное приложение отключили внешние силы?
Есть событие AppDomain.CurrentDomain.ProcessExit оно вызывается когда приложение заканчивается само
Есть событие Console.CancelKeyPress оно вызывается когда ты нажмешь Ctrl+C / Ctrl + Break
Где событие если ты закрыл консоль терминала или консоль приложения на крестик, через панель задач или диспетчер задач?
cyb0rg_01, одно событие когда прогу выключаешь просишь ее закрыться как либо типа Process.CloseMainWindow,
другое когда Process.Kill дарт вейдер вроде параллельно контролировать нужно
Завершение процесса через диспетчер задач не вызывает никаких событий в закрываемой программе. Операционная система освобождает все ресурсы процесса из оперативной памяти.
Если стоит задача сделать что-то при закрытии внешними силами то можно использовать очень кривой костыль в виде своего кода в финализаторе. Почитайте рихтера там подробно рассказано о механике работы CLR когда она убивает процесс без выполнения дефолтных событий закрытия.