2008-10-28 24 views
7

Tôi đang tìm cách buộc ứng dụng của tôi tắt và trả lại mã Thoát. Đã có một cái nhìn về MSDN và tôi có thể thấy rằng trong WPF ứng dụng có một phương pháp Shutdown mà có một mã lỗi như một tham số, nhưng có vẻ không phải là một cho System.Windows.Forms.Application.Ứng dụng buộc phải tắt (.net)

Tôi có thể thấy Application.Exit() nhưng không phải là cách để trả lại mã lỗi.

Có ai biết ngoại tuyến nếu điều này là có thể không?

Cảm ơn

Trả lời

13

Bạn có thể sử dụng System.Environment.Exit (yourExitCode).

+0

Bất kỳ lý do nào để sử dụng Environment.Exit qua Application.Exit ngoài mã lỗiS? – Sekhat

+1

Ứng dụng.Điều kiện cần được sử dụng trong các ứng dụng Winforms, environment.exit() có thể được sử dụng trong các chương trình không phải GUI. –

2

đặt thuộc tính ExitCode trong lớp System.Environment và khi thoát. ví dụ.

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

Thêm một tài sản exit code (hoặc một cái gì đó tương tự) để lớp form:

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

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

Một nơi nào đó trong mã của bạn, bạn có:

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

Thay đổi đó vào:

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

Khi ShutdownWithE phương thức rror được gọi trên biểu mẫu của bạn, bạn sẽ đóng biểu mẫu chính. Điều này sẽ nhảy ra khỏi vòng lặp bắt đầu với Application.Run. Sau đó, bạn chỉ cần lấy mã thoát và giết quá trình với Environment.Exit.

+0

Cảm ơn, tôi nghĩ trường hợp của chúng tôi phức tạp hơn một chút vì chúng tôi cần phải đóng cửa trong trình xử lý ngoại lệ toàn cầu. Nhưng nguyên tắc là như nhau, tôi nghĩ vậy. – Duncan

Các vấn đề liên quan