Вызов функции при закрытии консольного приложения - C#
Формулировка задачи:
Пытаюсь реализовать вызов функции при закрытии консольного приложения(будь то закрытие пользователя или выключение ПК)
Нашёл похожий вопрос на стаке(взял оттуда код), и хочу сделать, чтобы если пользователь ввёл 0, то в MessageBox выводилось 0, но не могу разобраться, как это сделать. Подскажите, пожалуйста.
internal delegate void SignalHandler(ConsoleSignal consoleSignal, int vs); internal enum ConsoleSignal { CtrlC = 0, CtrlBreak = 1, Close = 2, LogOff = 5, Shutdown = 6 } internal static class ConsoleHelper { [DllImport("Kernel32", EntryPoint = "SetConsoleCtrlHandler")] public static extern bool SetSignalHandler(SignalHandler handler, bool add); } private static SignalHandler signalHandler; static void Main(string[] args) { int p = int.Parse(Console.ReadLine()); if (p == 0) { //сделать returnedValue = 0 } signalHandler += HandleConsoleSignal; ConsoleHelper.SetSignalHandler(signalHandler, true); int i = 0; while (true) { i++; Console.WriteLine("*"+i.ToString()); } } private static void HandleConsoleSignal(ConsoleSignal consoleSignal, int returnedValue) { MessageBox.Show(returnedValue.ToString()); } }
Решение задачи: «Вызов функции при закрытии консольного приложения»
textual
Листинг программы
internal enum ConsoleSignal { CtrlC = 0, CtrlBreak = 1, Close = 2, LogOff = 5, Shutdown = 6 } [DllImport("Kernel32", EntryPoint = "SetConsoleCtrlHandler")] public static extern bool SetSignalHandler(ActionDeleg deleg, bool add); internal delegate void ActionDeleg(ConsoleSignal consoleSignal); static void Main() { SetSignalHandler( (cs) => { MessageBox.Show(cs.ToString()); }, true); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д