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

488
Chương 12: Dịch vụ Web XML và Remoting

TimeSpan elapsedTime = DateTime.Now - startDate;

Console.WriteLine("Completed after " + elapsedTime.ToString());

Console.WriteLine("Total delay time: " + totalDelay.ToString());

}

}

Trong trường hợp này, thời gian đã trôi qua nhỏ hơn thời gian trì hoãn tổng cộng:

Completed after 00:00:20.2591312

Total delay time: 47

Cách thứ hai là sử dụng callback. Bạn cần nhập một ủy nhiệm chỉ định một phương thức cụ
thể trong mã lệnh. Khi phương thức web hoàn tất, ủy nhiệm này sẽ được gọi với đối số là một
đối tượng

IAsyncResult

thích hợp.

Dưới đây là đoạn mã gọi phương thức

BeginWait

(cùng với một callback):

AsyncCallback callback = new AsyncCallback(Callback);

// Gọi phương thức một cách bất đồng bộ.

proxy.BeginWait(callback, proxy);

Và đây là callback (sẽ được kích hoạt khi thao tác hoàn tất):

public static void Callback(IAsyncResult handle) {

localhost.WaitService proxy =

(localhost.WaitService)handle.AsyncState;

int result = proxy.EndWait(handle);

Console.WriteLine("Waited " + result.ToString());

}

7.

7.

T o l p kh -truy-xu t-t -xa

ạ ớ

ấ ừ

T o l p kh -truy-xu t-t -xa

ạ ớ

ấ ừ

Bạn muốn tạo một lớp có thể được truy xuất từ một ứng dụng khác hay từ một
máy tính khác trên mạng. Tuy vậy, bạn không cần tính tương thích xuyên-nền
và bạn muốn có hiệu năng tối ưu.

Làm cho lớp này trở thành khả-truy-xuất-từ-xa (remotable) bằng cách dẫn xuất
từ lớp

System.MarshalByRefObject

, và tạo một host để đăng ký lớp này với kiến

trúc .NET Remoting.

Remoting cho phép bạn làm cho một đối tượng trở nên truy xuất được qua các biên máy và
biên tiến trình. Trong khi dịch vụ Web XML là giải pháp lý tưởng khi bạn cần chia sẻ các chứ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.