2008-10-28 7 views
7

Ich möchte meine Anwendung zum Herunterfahren zwingen und einen Exit-Code zurückgeben. Hatte einen Blick auf MSDN und ich kann sehen, dass in WPF die Anwendung eine Shutdown-Methode hat, die einen Fehlercode als Parameter akzeptiert, aber es scheint nicht für System.Windows.Forms.Application zu sein.Anwendung zum Herunterfahren zwingen (.net)

Ich kann Application.Exit(), aber keine Möglichkeit, einen Fehlercode zurückgeben.

Weiß jemand aus der Hand, wenn das möglich ist?

Dank

Antwort

13

Sie können System.Environment.Exit (yourExitCode) verwenden.

+0

Jeder Grund, Environment.Exit über Application.Exit neben FehlercodeS zu verwenden? – Sekhat

+1

Application.Exit muss in Winforms-Apps verwendet werden, environment.exit() kann in Nicht-GUI-Programmen verwendet werden. –

2

Legen Sie die ExitCode-Eigenschaft in der System.Environment-Klasse und beim Beenden fest. z.B.

System.Environment.ExitCode = 1 
Application.Exit() 
2

hinzufügen Exitcode-Eigenschaft (oder so ähnlich), um Ihre Formularklasse:

class MyForm : Form { 
    public int ExitCode { get; set; } 

    void ShutDownWithError(int code) { 
    ExitCode = code; 
    Close(); 
    } 
} 

Irgendwo in Ihrem Code Sie haben:

static void Main() { 
    // ... 
    MyForm form = new MyForm(); 
    Application.Run(myForm); 
} 

ändern, dass in:

static void Main() { 
    // ... 
    MyForm myForm = new MyForm(); 
    Application.Run(myForm); 
    Environment.Exit(myForm.ExitCode); 
} 

Wenn die ShutdownWithE Die Methode rror wird in Ihrem Formular aufgerufen. Sie schließen das Hauptformular. Dies springt aus der Schleife, die mit Application.Run gestartet wurde. Dann holen Sie einfach den Exit-Code und beenden den Vorgang mit Environment.Exit.

+0

Danke, ich denke, unser Fall ist ein wenig komplizierter, weil wir im globalen Ausnahmebehandler herunterfahren müssen. Aber das Prinzip ist das gleiche, denke ich. – Duncan