Функция закрытия в консольном приложении VB.NET

Как я могу запустить функцию, когда она обнаруживает закрытие консоли при использовании Environment.Exit(0)?


person StealthRT    schedule 11.04.2012    source источник


Ответы (1)


Самый простой способ сделать это, вероятно, - обработать событие AppDomain.ProcessExit < / a>, который возникает при выходе из родительского процесса приложения.

Например:

Module MyApp

    Sub Main()
        ' Attach the event handler method
        AddHandler AppDomain.CurrentDomain.ProcessExit, AddressOf MyApp_ProcessExit

        ' Do something
        ' ...

        Environment.Exit(0)
    End Sub

    Private Sub MyApp_ProcessExit(sender As Object, e As EventArgs)
        Console.WriteLine("App Is Exiting...")
    End Sub

End Module

Но вызов Environment.Exit может быть не лучшим решением вашей первоначальной проблемы. В общем, этот метод необходимо использовать только тогда, когда могут быть запущены другие потоки переднего плана. И в этом случае стоит изучить способы изящного завершения этих других потоков, не прибегая к драконовским мерам, которые убивают весь процесс.

Environment.Exit, несмотря на несколько приятное название, это довольно жестокая мера. Это не так плохо, как нажатие кнопки «Завершить задачу» в диспетчере задач Windows (и обратите внимание, что если вы сделаете это, событие ProcessExit не возникнет, а это означает, что указанное выше предложение не сработает), но, вероятно, это тоже не то решение, которое вам действительно нужно.

person Cody Gray    schedule 11.04.2012