Câu trả lời:
Bạn có thể sử dụng Environment.Exit(0);
vàApplication.Exit
Environment.Exit(0)
là sạch .
Environment.Exit
yêu cầu bạn phải có quyền SecurityPermissionFlag.UnmanagedCode - điều này có thể gây rắc rối cho một số người.
Một số tùy chọn, theo thứ tự của cách thích hợp nhất:
System.Environment.Exit
( không phải di động! Xem bên dưới )Đã chỉnh sửa 9/2013 để cải thiện khả năng đọc
Quay trở lại với một mã thoát cụ thể: Như Servy chỉ ra trong các nhận xét, bạn có thể khai báo Main bằng int
loại trả về và trả về mã lỗi theo cách đó. Vì vậy, thực sự không cần sử dụng Môi trường. Ngoại trừ khi bạn cần chấm dứt với mã thoát và không thể thực hiện được trong phương thức Chính. Hầu hết có lẽ bạn có thể tránh điều đó bằng cách ném một ngoại lệ và trả lại mã lỗi trong Main nếu có bất kỳ ngoại lệ nào chưa được xử lý lan truyền ở đó. Nếu ứng dụng đa luồng, có lẽ bạn sẽ cần nhiều bản soạn sẵn hơn để chấm dứt đúng cách với mã thoát để bạn có thể tốt hơn nếu chỉ gọi Môi trường.Exit.
Một điểm khác chống lại việc sử dụng Evironment.Exit
- ngay cả khi viết các ứng dụng đa luồng - là khả năng sử dụng lại . Nếu bạn muốn sử dụng lại mã của mình trong môi trường Environment.Exit
không liên quan (chẳng hạn như thư viện có thể được sử dụng trong máy chủ web), mã sẽ không thể mang theo được. Theo tôi, giải pháp tốt nhất vẫn là sử dụng các ngoại lệ và / hoặc trả về các giá trị thể hiện rằng phương thức đã đạt đến một số trạng thái lỗi / kết thúc. Bằng cách đó, bạn luôn có thể sử dụng cùng một mã trong bất kỳ môi trường .NET nào và trong bất kỳ loại ứng dụng nào. Nếu bạn đang viết cụ thể một ứng dụng cần trả về mã thoát hoặc chấm dứt theo cách tương tự như Environment.Exit
vậy, thì bạn có thể tiếp tục và bọc luồng ở mức cao nhất và xử lý các lỗi / ngoại lệ khi cần.
Các ứng dụng Console sẽ thoát khi chức năng chính đã chạy xong. Một "sự trở lại" sẽ đạt được điều này.
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
Nếu bạn trả về mã lỗi, bạn có thể thực hiện theo cách này, có thể truy cập được từ các chức năng bên ngoài chuỗi ban đầu:
System.Environment.Exit(-1);
Bạn có thể sử dụng Environment.Exit(0)
và Application.Exit
.
Environment.Exit()
: chấm dứt quá trình này và cung cấp cho hệ điều hành bên dưới mã thoát được chỉ định.