2010-03-31 5 views
43

У меня есть маленькая консоль C# программы, какКак запустить код перед выходом программы?

Class Program 
{ 
    static void main(string args[]) 
    { 
    } 
} 

Теперь я хочу сделать что-то после основного (выхода). Я попытался написать деконструктор для программы класса, но он никогда не попадает.

Кто-нибудь знает, как это сделать.

Большое спасибо

ответ

97

Попробуйте ProcessExit событие AppDomain:

using System; 
class Test { 
    static void Main(string[] args) 
    { 
     AppDomain.CurrentDomain.ProcessExit += new EventHandler (OnProcessExit); 
     // Do something here 
    } 

    static void OnProcessExit (object sender, EventArgs e) 
    { 
     Console.WriteLine ("I'm out of here"); 
    } 
} 
+0

Это работает даже лучше. – 7wp

+0

Мой ответ был неправильным, это лучший подход. – ace

+0

Это наиболее общее решение, но будьте осторожны, так как событие ProcessExit ограничено до трех секунд (например, финализаторы - это когда приложение закрывается). http://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx –

Смежные вопросы