Aracılığıyla paylaş


OperationContractAttribute.AsyncPattern Özellik

Tanım

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.

Şunlara uygulanır