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

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

// Đợi phương thức thực thi bất đồng bộ kết thúc.

// Time-out sau 300 mili-giây và hiển thị trạng thái ra

// cửa sổ Console trước khi tiếp tục đợi.

Console.WriteLine("{0} : Waiting until method is complete...",

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

while(!asyncResult.AsyncWaitHandle.WaitOne(300, false)) {

Console.WriteLine("{0} : Wait timeout...",

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

}

// Thu lấy kết quả của phương thức thực thi bất đồng bộ.

DateTime completion =

longRunningMethod.EndInvoke(asyncResult);

// Hiển thị thông tin kết thúc.

Console.WriteLine("{0} : Waiting example complete.",

completion.ToString("HH:mm:ss.ffff"));

}

4.

Phương thức

WaitAllExample

Phương thức

WaitAllExample

thực thi bất đồng bộ phương thức

LongRunningMethod

nhiều lần và sau đó sử dụng mảng các đối tượng

WaitHandle

để đợi cho đến khi tất cả

các phương thức kết thúc.

public static void WaitAllExample() {

Console.WriteLine(Environment.NewLine +

"*** Running WaitAll Example ***");

// Một ArrayList chứa các thể hiện IAsyncResult

// cho các phương thức thực thi bất đồng bộ.

ArrayList asyncResults = new ArrayList(3);

// Gọi ba lần LongRunningMethod một cách bất đồng bộ.

// Truyền null cho cả ủy nhiệm callback và đối tượng

// trạng thái bất đồng bộ. Thêm thể hiện IAsyncResult

// cho mỗi phương thức vào ArrayList.

AsyncExampleDelegate longRunningMethod =

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.