Nếu khởi chạy một tiến trình mới từ mã lệnh được quản lý bằng lớp Process, có thể kết thúc tiến trình mới bằng đối tượng Process mô tả tiến trình này. Một khi đã có đối tượng Process mô tả
tiến trình cần kết thúc, cần gọi phương thức CloseMainWindow hay phương thức Kill().
Phương thức CloseMainWindow gửi một thông điệp đến cửa sổ chính của ứng dụng. CloseMainWindow sẽ không kết thúc các ứng dụng không có cửa sổ chính hoặc các ứng dụng có cửa sổ chính bị vô hiệu. Với những tình huống như thế, CloseMainWindow sẽ trả về false. CloseMainWindow trả về true nếu thông điệp được gửi thành công, nhưng không bảo đảm tiến trình thật sự kết thúc.
Phương thức Kill() kết thúc một tiến trình ngay lập tức; người dùng không có cơ hội dừng việc kết thúc, và tất cả các dữ liệu chưa được lưu sẽ bị mất.
Ví dụ sau, khởi chạy một thể hiện mới của Notepad, đợi 5 giây, sau đó kết thúc tiến trình Notepad. Trước tiên, ví dụ này kết thúc tiến trình bằng CloseMainWindow. Nếu CloseMainWindow trả về false, hoặc tiến trình Notepad vẫn cứ chạy sau khi CloseMainWindow được gọi, ví dụ này sẽ
gọi Kill() và buộc tiến trình Notepad kết thúc. Có thể buộc CloseMainWindow trả về false bằng cách bỏ mặc hộp thoại File Open mở.
Chương trình TerminateProcessExample
using System;
using System.Threading; using System.Diagnostics;
public class TerminateProcessExample {
public static void Main() {
// Tạo một Process mới và chạy notepad.exe.
using (Process process = Process.Start("notepad.exe")) {
// Đợi 5 giây và kết thúc tiến trình Notepad. Thread.Sleep(5000);
// Kết thúc tiến trình Notepad. Gửi một thông điệp đến cửa sổ chính. if (!process.CloseMainWindow())
{
// Không gửi được thông điệp. Kết thúc Notepad bằng Kill. process.Kill();
} else {
// Thông điệp được gửi thành công; đợi 2 giây
// để chứng thực việc kết thúc trước khi viện đến Kill. if (!process.WaitForExit(2000))
{
process.Kill(); }
// Nhấn Enter để kết thúc.
Console.WriteLine("Main method complete. Press Enter."); Console.ReadLine();
} }
} }