131
Chương 4: Tiểu trình, tiến trình, và sự đồng bộ
TimerCallback handler = new TimerCallback(TimerHandler);
// Tạo một đối tượng trạng thái, đối tượng này sẽ được
// truyền cho phương thức TimerHandler.
// Trong trường hợp này, một thông báo sẽ được hiển thị.
string state = "Timer expired.";
Console.WriteLine("{0} : Creating Timer.",
DateTime.Now.ToString("HH:mm:ss.ffff"));
// Tạo một Timer, phát sinh lần đầu tiên sau hai giây
// và sau đó là mỗi giây.
using (Timer timer = new Timer(handler, state, 2000, 1000)) {
int period;
// Đọc thời khoảng mới từ Console cho đến khi
// người dùng nhập 0. Các giá trị không hợp lệ
// sẽ sử dụng giá trị mặc định là 0 (dừng ví dụ).
do {
try {
period = Int32.Parse(Console.ReadLine());
} catch {
period = 0;
}
// Thay đổi Timer với thời khoảng mới.
if (period > 0) timer.Change(0, period);
} while (period > 0);
}
// Nhấn Enter để kết thúc.
Console.WriteLine("Main method complete. Press Enter.");
Console.ReadLine();
}
}