OperationContractAttribute.AsyncPattern Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menunjukkan bahwa operasi diimplementasikan secara asinkron menggunakan Begin< pasangan metode methodName> dan End<methodName> dalam kontrak layanan.
public:
property bool AsyncPattern { bool get(); void set(bool value); };
public bool AsyncPattern { get; set; }
member this.AsyncPattern : bool with get, set
Public Property AsyncPattern As Boolean
Nilai Properti
truejika metode methodName>dicocokkan dengan End< metode methodName> dan dapat diperlakukan oleh infrastruktur sebagai operasi yang diimplementasikan sebagai pasangan metode asinkron pada antarmuka layanan; jika tidak, false.Begin< Defaultnya adalah false.
Contoh
Contoh kode berikut menunjukkan saluran klien ke kontrak layanan yang menyertakan versi sinkron dan versi Add asinkron. Jika antarmuka kontrak digunakan pada klien, operasi BeginAdd dan Add memanggil metode di server yang mungkin atau mungkin tidak sinkron. Jika kontrak digunakan untuk mengimplementasikan layanan, defaultnya adalah bahwa permintaan masuk dikirim ke metode sinkron.
[ServiceContract]
public interface IAddTwoNumbers
{
// If the asynchronous method pair
// appears on the client channel, the client can call
// them asynchronously to prevent blocking.
[OperationContract (AsyncPattern=true)]
IAsyncResult BeginAdd(int a, int b, AsyncCallback cb, AsyncState s);
[OperationContract]
int EndAdd(IAsyncResult r);
// This is a synchronous version of the BeginAdd/EndAdd pair.
// It appears in the client channel code by default.
[OperationContract]
int Add(int a, int b);
}
Keterangan
AsyncPattern Gunakan properti untuk membangun operasi layanan yang dapat dipanggil secara asinkron di server, klien, atau keduanya. Properti AsyncPattern menginformasikan runtime bahwa Begin metode memiliki metode yang cocok End yang sesuai dengan pola desain metode asinkron .NET Framework. Membangun metode asinkron server yang menerapkan operasi layanan meningkatkan skalabilitas dan performa server tanpa memengaruhi klien layanan, dan direkomendasikan ketika operasi layanan harus mengembalikan sesuatu kepada klien setelah melakukan operasi panjang yang dapat dilakukan secara asinkron.
Klien tetap tidak terpengaruh karena pasangan metode asinkron pada server adalah detail implementasi yang tidak memengaruhi deskripsi Web Services Description Language (WSDL) yang mendasar tentang operasi. Metode tersebut muncul kepada klien sebagai operasi tunggal dengan <input> dan pesan yang berkorelasi <output> . WCF secara otomatis merutekan pesan masuk ke Begin< metode methodName> dan merutekan hasil End< panggilan methodName> ke pesan keluar. Oleh karena itu, saluran klien dapat mewakili pasangan metode sebagai operasi sinkron tunggal atau sebagai pasangan operasi asinkron. Dalam hal apa pun representasi klien memengaruhi implementasi asinkron pada server dengan cara apa pun.
Kontrak klien dapat menggunakan AsyncPattern properti untuk menunjukkan pasangan metode asinkron yang dapat digunakan klien untuk memanggil operasi secara asinkron. Biasanya, aplikasi klien menggunakan alat Alat Utilitas Metadata ServiceModel (Svcutil.exe) dan /async opsi untuk menghasilkan<Begin pasangan metode methodName> dan End<methodName> yang dapat digunakan klien untuk memanggil operasi secara asinkron.
Nota
Jika operasi layanan memiliki versi asinkron dan sinkron, perilaku default pada layanan adalah memanggil versi sinkron.