OperationContractAttribute.AsyncPattern Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir işlemin bir hizmet sözleşmesinde methodName ve<EndmethodName>> yöntem çifti kullanılarak Begin< zaman uyumsuz olarak uygulandığını gösterir.
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
Özellik Değeri
true
Begin
<
methodName>yöntemi bir End<methodName> yöntemiyle eşleşiyorsa ve altyapı tarafından hizmet arabiriminde zaman uyumsuz yöntem çifti olarak uygulanan bir işlem olarak ele alınabiliyorsa; aksi takdirde, false. Varsayılan değer: false.
Örnekler
Aşağıdaki kod örneği, hem zaman uyumlu sürümünü hem de zaman uyumsuz sürümünü içeren bir hizmet sözleşmesine Add yönelik istemci kanalını gösterir. sözleşme arabirimi istemcide kullanılıyorsa, hem de BeginAddAdd işlemi sunucuda zaman uyumlu olabilecek veya olmayan bir yöntem çağırır. Sözleşme hizmeti uygulamak için kullanılırsa, varsayılan olarak gelen isteklerin zaman uyumlu yönteme gönderilmesi gerekir.
[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);
}
Açıklamalar
Sunucuda, istemcide AsyncPattern veya her ikisinde zaman uyumsuz olarak çağrılabilen hizmet işlemleri oluşturmak için özelliğini kullanın.
AsyncPattern özelliği, çalışma zamanına bir Begin yöntemin .NET Framework zaman uyumsuz yöntem tasarım desenine uyan eşleştirilmiş End bir yöntemi olduğunu bildirir. Hizmet işlemi uygulayan sunucu zaman uyumsuz yöntemleri oluşturmak, hizmet istemcilerini etkilemeden sunucu ölçeklenebilirliğini ve performansını artırır ve bir hizmet işleminin zaman uyumsuz olarak gerçekleştirilebilecek uzun bir işlem gerçekleştirdikten sonra istemciye bir şey döndürmesi gerektiğinde önerilir.
Sunucudaki zaman uyumsuz yöntem çifti, işlemin temel Web Hizmetleri Açıklama Dili (WSDL) açıklamasını etkilemeyen bir uygulama ayrıntısı olduğundan istemciler etkilenmez. Bu tür yöntemler istemcilere iletilerle ve bağıntılı <output> iletilerle <input> tek bir işlem olarak görünür. WCF gelen iletileri otomatik olarak methodName> yöntemine Begin< yönlendirir ve methodName> çağrısının End< sonuçlarını giden iletiye yönlendirir. Bu nedenle istemci kanalları yöntem çiftini tek bir zaman uyumlu işlem veya zaman uyumsuz işlem çifti olarak temsil edebilir. Hiçbir durumda istemci gösterimi, sunucudaki zaman uyumsuz uygulamayı hiçbir şekilde etkilemez.
İstemci sözleşmeleri, istemcinin AsyncPattern işlemi zaman uyumsuz olarak çağırmak için kullanabileceği zaman uyumsuz bir yöntem çiftini belirtmek için özelliğini kullanabilir. İstemci uygulamaları genellikle ServiceModel Meta Veri Yardımcı Programı Aracı (Svcutil.exe) aracını ve istemcinin /async işlemi zaman uyumsuz olarak çağırmak için kullanabileceği bir<BeginmethodName> ve End<methodName> yöntem çifti oluşturma seçeneğini kullanır.
Uyarı
Bir hizmet işleminin hem zaman uyumsuz hem de zaman uyumlu sürümü varsa, hizmetteki varsayılan davranış zaman uyumlu sürümü çağırmaktır.