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<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
true
Begin
<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.