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

507

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

// (Bắt đầu một tác vụ kéo dài nhưng không khiến client phải đợi.)

Delay(10);

}

private void Delay(int seconds) {

DateTime currentTime = DateTime.Now;

while (DateTime.Now.Subtract(currentTime).TotalSeconds < seconds)

{}

}

}

Ví dụ trên giả định dịch vụ Web XML và client đang sử dụng SOAP document (mặc định).
Nếu đang sử dụng Remote Procedure Call (RPC), bạn hãy sử dụng đặc tính tương ứng là

SoapRpcMethod

để đánh dấu phương thức một chiều.

Để tạo một phương thức một chiều trong một thành phần trên Remoting, bạn cần áp dụng đặc
tính

OneWay

(thuộc không gian tên

System.Runtime.Remoting.Messaging

) cho phương thức

thích hợp. Đoạn mã dưới đây trình bày một ví dụ giống như trên nhưng với một thành phần ở
xa:

using System;

using System.Runtime.Remoting.Messaging;

public class OneWayTestRemoting : MarshalByRefObject {

public void DoLongTaskWithWait() {

// (Bắt đầu một tác vụ kéo dài và khiến client phải đợi.)

Delay(10);

}

[OneWay()]

public void DoLongTaskWithoutWait() {

// (Bắt đầu một tác vụ kéo dài nhưng không khiến client phải đợi.)

Delay(10);

}

private void Delay(int seconds) {

DateTime currentTime = DateTime.Now;

while (DateTime.Now.Subtract(currentTime).TotalSeconds < seconds) {}

}

}

Phương thức một chiều không phải là cách duy nhất để loại bỏ việc trì hoãn
client. Bạn cũng có thể điều chỉnh client gọi phương thức web một cách bất đồng

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.