// Phương thức sẽ được thực khi Timer hết hiệu lực.
// Hiển thị một thông báo ra cửa sổ Console.
Console.WriteLine("{0} : {1}",
DateTime.Now.ToString("HH:mm:ss.ffff"), state);
}
// Tạo một thể hiện ủy nhiệm TimerCallback mới
// tham chiếu đến phương thức tĩnh TimerHandler.
// TimerHandler sẽ được gọi khi Timer hết hiệu lực.
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)) {
// Đọ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ụ).
period
= Int32.Parse(Console.ReadLine()); period = 0;
}
// Thay đổi Timer với thời khoảng mới.
if (period
> 0) timer
.Change(0, period
);
}
// Nhấn Enter để kết thúc.
Console.WriteLine("Main method complete. Press Enter.");
Console.ReadLine();
}
}