137
Chương 4: Tiểu trình, tiến trình, và sự đồng bộ
public static void Main() {
// Tạo một đối tượng ThreadExample.
ThreadExample example =
new ThreadExample(5, "A thread example.", 500);
// Khởi chạy đối tượng ThreadExample.
example.Start();
// Tiếp tục thực hiện công việc khác.
for (int count = 0; count < 13; count++) {
Console.WriteLine("{0} : Continue processing...",
DateTime.Now.ToString("HH:mm:ss.ffff"));
Thread.Sleep(200);
}
// Nhấn Enter để kết thúc.
Console.WriteLine("Main method complete. Press Enter.");
Console.ReadLine();
}
}
6.
6.
Đi u khi n quá trình th c thi c a m t ti u trình
ề
ể
ự
ủ ộ ể
Đi u khi n quá trình th c thi c a m t ti u trình
ề
ể
ự
ủ ộ ể
Bạn cần nắm quyền điều khiển khi một tiểu trình chạy và dừng, và có thể tạm
dừng quá trình thực thi của một tiểu trình.
Sử dụng các phương thức
Abort
,
Interrupt
,
Resume
,
Start
, và
Suspend
của
Thread
mà bạn cần điều khiển.
Các phương thức của lớp
Thread
được tóm tắt trong bảng 4.1 cung cấp một cơ chế điều khiển
mức cao lên quá trình thực thi của một tiểu trình. Mỗi phương thức này trở về tiểu trình đang
gọi ngay lập tức. Tuy nhiên, trạng thái của tiểu trình hiện hành đóng vai trò quan trọng trong
kết quả của lời gọi phương thức, và trạng thái của một tiểu trình có thể thay đổi nhanh chóng.
Kết quả là, bạn phải viết mã để bắt và thụ lý các ngoại lệ có thể bị ném khi bạn cố điều khiển
quá trình thực thi của một
Thread
.
Lớp
ThreadControlExample
dưới đây trình bày cách sử dụng các phương thức được liệt kê
trong bảng 4.1. Ví dụ này khởi chạy một tiểu trình thứ hai, hiển thị định kỳ một thông báo ra
cửa sổ Console và rồi đi vào trạng thái nghỉ (sleep). Bằng cách nhập các lệnh tại dấu nhắc
lệnh, bạn có thể gián đoạn, tạm hoãn, phục hồi, và hủy bỏ tiểu trình thứ hai.