Aracılığıyla paylaş


OperationContractAttribute.AsyncPattern Özellik

Tanım

Bir işlemin bir hizmet sözleşmesinde methodName ve<End methodName>> 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

Boolean

trueBegin<methodNamemethod> 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 işlenebilirse, 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şmesinin Add istemci kanalını gösterir. sözleşme arabirimi istemcide kullanılıyorsa, hem hem de BeginAdd Add işlemi sunucuda zaman uyumlu olabilecek veya olmayan bir yöntem çağırır. Sözleşme hizmeti uygulamak için kullanılıyorsa, 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. özelliği, AsyncPattern çalışma zamanına bir Begin yöntemin zaman uyumsuz yöntem tasarım desenine uygun .NET Framework eşleşen End bir yöntemi olduğunu bildirir. Bir hizmet işlemi uygulayan sunucu zaman uyumsuz yöntemleri oluşturmak, hizmetin 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 yöntemine Begin<methodName> yönlendirir ve çağrının End<methodName> 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 yöntem çiftini göstermek için özelliğini kullanabilir. Genellikle, istemci uygulamaları 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 Begin<methodName> ve End<methodName> yöntem çifti oluşturma seçeneğini kullanır.

Not

Bir hizmet işleminin hem zaman uyumsuz hem de zaman uyumlu sürümü varsa, hizmette varsayılan davranış zaman uyumlu sürümü çağırmaktır.

Şunlara uygulanır