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

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

DateTime time = longRunningMethod.EndInvoke(result);

if ( time > completion) completion = time;

}

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

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

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

}

5.

Phương thức

CallbackExample

Phương thức

CallbackExample

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

LongRunningMethod

truyền một thể hiện ủy nhiệm

AsyncCallback

(tham chiếu đến phương thức

CallbackHandler

) cho phương thức

BeginInvoke

. Phương thức

CallbackHandler

sẽ

được gọi một cách tự động khi phương thức

LongRunningMethod

kết thúc, kết quả là

phương thức

CallbackExample

vẫn tiếp tục thực hiện công việc.

public static void CallbackExample() {

Console.WriteLine(Environment.NewLine +

"*** Running Callback Example ***");

// Gọi LongRunningMethod một cách bất đồng bộ. Truyền một

// thể hiện ủy nhiệm AsyncCallback tham chiếu đến

// phương thức CallbackHandler. CallbackHandler sẽ

// tự động được gọi khi phương thức thực thi bất đồng bộ

// kết thúc. Truyền một tham chiếu đến thể hiện ủy nhiệm

// AsyncExampleDelegate như một trạng thái bất đồng bộ;

// nếu không, phương thức callback không thể truy xuất

// thể hiện ủy nhiệm để gọi EndInvoke.

AsyncExampleDelegate longRunningMethod =

new AsyncExampleDelegate(LongRunningMethod);

IAsyncResult asyncResult = longRunningMethod.BeginInvoke(2000,

"Callback", new AsyncCallback(CallbackHandler),

longRunningMethod);

// Tiếp tục với công việc khác.

for (int count = 0; count < 15; count++) {

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.