2008-10-28 6 views
7

Я ищу, чтобы заставить приложение закрыть и вернуть код выхода. Посмотрел MSDN, и я вижу, что в WPF в приложении есть метод Shutdown, который принимает код ошибки в качестве параметра, но, похоже, для System.Windows.Forms.Application не существует.Принудительное приложение для отключения (.net)

Я вижу Application.Exit(), но не способ передать код ошибки.

Кто-нибудь знает, если это возможно?

Благодаря

ответ

13

Вы можете использовать System.Environment.Exit (yourExitCode).

+0

Любые причины использования Environment.Exit над Application.Exit помимо кода ошибкиS? – Sekhat 2008-10-28 11:11:35

+1

Application.Exit необходимо использовать в приложениях Winforms, environment.exit() может использоваться в программах без GUI. – 2008-10-28 12:24:33

2

установить свойство ExitCode в классе System.Environment и при выходе из него. например

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

Добавить свойство ExitCode (или нечто подобное), чтобы ваш класс формы:

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

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

Где-то в вашем коде у вас есть:

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

Изменение, что в:

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

Когда ShutdownWithE В вашей форме вызывается метод rror, вы закрываете основную форму. Это выскочит из цикла, запущенного с Application.Run. Затем вы просто извлекаете код выхода и убиваете процесс с помощью Environment.Exit.