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

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

Khi tạo một đối tượng

Timer

, bạn cần chỉ định hai thời khoảng (thời khoảng có thể được chỉ

định là các giá trị kiểu

int

,

long

,

uint

, hay

System.TimeSpan

):

Giá trị đầu tiên là thời gian trễ (tính bằng mili-giây) để phương thức của bạn được thực
thi lần đầu tiên. Chỉ định giá trị

0

để thực thi phương thức ngay lập tức, và chỉ định

System.Threading.Timeout.Infinite

để tạo

Timer

ở trạng thái chưa bắt đầu

(unstarted).

Giá trị thứ hai là khoảng thời gian mà

Timer

sẽ lặp lại việc gọi phương thức của bạn sau

lần thực thi đầu tiên. Nếu bạn chỉ định giá trị

0

hay

Timeout.Infinite

thì

Timer

chỉ thực

thi phương thức một lần duy nhất (với điều kiện thời gian trễ ban đầu không phải là

Timeout.Infinite

). Đối số thứ hai có thể cung cấp bằng các trị kiểu

int

,

long

,

uint

,

hay

System.TimeSpan

.

Sau khi tạo đối tượng

Timer

, bạn cũng có thể thay đổi các thời khoảng được sử dụng bởi

Timer

bằng phương thức

Change

, nhưng bạn không thể thay đổi phương thức sẽ được gọi. Khi đã

dùng xong

Timer

, bạn nên gọi phương thức

Timer.Depose

để giải phóng tài nguyên hệ thống

bị chiếm giữ bởi

Timer

. Việc hủy

Timer

cũng hủy luôn phương thức đã được định thời thực

thi.
Lớp

TimerExample

dưới đây trình bày cách sử dụng

Timer

để gọi một phương thức có tên là

TimerHandler

. Ban đầu,

Timer

được cấu hình để gọi

TimerHandler

sau hai giây và lặp lại sau

một giây. Ví dụ này cũng trình bày cách sử dụng phương thức

Timer.Change

để thay đổi các

thời khoảng.

using System;

using System.Threading;

public class TimerExample {

// 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.

private static void TimerHandler(object state) {

Console.WriteLine("{0} : {1}",

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

}

public static void Main() {

// 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.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.