CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 139

139

Chương 4: Tiểu trình, tiến trình, và sự đồng bộ

while (true) {

try {

Console.WriteLine("{0} : Second thread running. Enter"

+ " (S)uspend, (R)esume, (I)nterrupt, or (E)xit.",

DateTime.Now.ToString("HH:mm:ss.ffff"));

// Nghỉ 2 giây.

Thread.Sleep(2000);

} catch (ThreadInterruptedException) {

// Tiểu trình đã bị gián đoạn. Việc bắt ngoại lệ

// ThreadInterruptedException cho phép ví dụ này

// thực hiện hành động phù hợp và tiếp tục thực thi.

Console.WriteLine("{0} : Second thread interrupted.",

DateTime.Now.ToString("HH:mm:ss.ffff"));

} catch (ThreadAbortException abortEx) {

// Đối tượng trong thuộc tính

// ThreadAbortException.ExceptionState được cung cấp

// bởi tiểu trình đã gọi Thread.Abort.

// Trong trường hợp này, nó chứa một chuỗi

// mô tả lý do của việc hủy bỏ.

Console.WriteLine("{0} : Second thread aborted ({1})",

DateTime.Now.ToString("HH:mm:ss.ffff"),

abortEx.ExceptionState);

// Mặc dù ThreadAbortException đã được thụ lý,

// bộ thực thi sẽ ném nó lần nữa để bảo đảm

// tiểu trình kết thúc.

}

}

}

public static void Main() {