2008-10-28 382 views
7

我正在寻求强制我的应用程序关闭,并返回一个退出代码。看看MSDN,我可以看到,在WPF中,应用程序有一个Shutdown方法,它将一个错误代码作为参数,但似乎没有一个用于System.Windows.Forms.Application。强制应用程序关闭(.net)

我可以看到Application.Exit(),但不能传回错误代码。

有没有人知道副手如果这是可能的?

感谢

回答

13

您可以使用System.Environment.Exit(yourExitCode)。

+0

除了错误代码之外,使用Environment.Exit over Application.Exit的任何理由? – Sekhat 2008-10-28 11:11:35

+1

Application.Exit需要在Winforms应用程序中使用,environment.exit()可用于非GUI程序。 – 2008-10-28 12:24:33

2

在退出时在System.Environment类中设置ExitCode属性。例如

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杀死进程。