Я буду использовать события процесса, чтобы подключить метод, который будет печатать что-либо при выходе из консоли.Вы можете видеть, что, поскольку я не знаю, какое событие подключить, я использовал три, которые звучат так, как будто они будут работать.
Чтобы проверить это, используйте код ниже.Окно консоли будет оставаться открытым в течение 5 секунд.Нажмите «х» в правом верхнем углу, чтобы закрыть окно до 5 секунд.Ожидается, что будет вызван метод CurrentDomain_ProcessExit.Это не называется.Как правильно сделать это с помощью управляемого кода .net?Я бы предпочел не использовать p / invoke и т. Д.
public static void Main(string[] args)
{
var currentProcess = Process.GetCurrentProcess();
currentProcess.Exited += CurrentDomain_ProcessExit;
AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;
AppDomain.CurrentDomain.DomainUnload += CurrentDomain_ProcessExit;
Thread.Sleep(5000);
}
internal static void CurrentDomain_ProcessExit(object sender, EventArgs e)
{
Console.WriteLine("we just captured the process exit."); // <-- this is never reached.
}