Phương thức Run tạo vòng lặp vô hạn để kiểm tra định kỳ thời gian hệ thống. Nếu thời gian thay đổi từ đối tượng Clock hiện hành, thì nó sẽ cảnh báo cho tất cả các subscriber và sau đó cập nhật lại những trạng thái của nó. | public void Run for ngừng 10 giây 10 lấy thời gian hiện hành dt nếu giây thay đổi cảnh báo cho subscriber if second tạo TimeInfoEventArgs để truyền cho subscriber TimeInfoEventArgs timeInformation new TimeInfoEventArgs nếu có bất cứ lớp nào đăng ký thì cảnh báo if OnSecondChange null OnSecondChange this timeinformation cập nhật trạng thái Phương thức Run tạo vòng lặp vô hạn để kiểm tra định kỳ thời gian hệ thống. Nếu thời gian thay đổi từ đối tượng Clock hiện hành thì nó sẽ cảnh báo cho tất cả các subscriber và sau đó cập nhật lại những trạng thái của nó. Bước đầu tiên là ngừng 10 giây 10 Ở đây chúng ta sử dụng phương thức tĩnh của lớp Thread từ của .NET. Sử dụng phương thức Sleep để kéo dài khoảng cách giữa hai lần thực hiện vòng lặp. Sau khi ngừng 10 mili giây phương thức sẽ kiểm tra thời gian hiện hành dt Cứ khoảng 100 lần kiểm tra thì một giây sẽ được gia tăng. Phương thức ghi nhận sự thay đổi và cảnh báo đến những subscriber của nó. Để làm được điều này đầu tiên phải tạo ra một đối tượng TimeInfoEventArgs if second tạo TimeinfoEventArgs để truyền cho các subscriber TimeinfoEventArgs timeinformation new TimeinfoEventArgs Và để cảnh báo cho những subscriber bằng cách kích hoạt sự kiện OnSecondChange cảnh báo cho các subscriber if OnSecondChange null OnSecondChange this timeinformation Nếu một sự kiện không có bất cứ lớp subscriber nào đăng ký thì nó ước lượng giá trị là null. Phần kiểm tra bên trên xác định giá trị của sự kiện có phải là null hay không để đảm bảo rằng có tồn tại lớp đăng ký nhận sự kiện trước khi gọi sự kiện OnSecondChange. Chúng ta lưu ý rằng OnSecondChange lấy hai tham số nguồn phát ra sự kiện và đối tượng dẫn xuất từ lớp EventArgs. Ở đây chúng ta có thể thấy rằng tham chiếu this của lớp clock .