2008-10-28 131 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殺死進程。