Şu anda bir istemci ve sunucu tarafına ayırma üzerinde çalışıyorum bir WPF uygulamasına sahibim - WCF kullanarak. Başlangıçta düz ileri çözümle karşılaştığım karışıklıktan hoşlanmadım, şimdi Miguel Castro, WCF Extreme belgesindeki tavsiyeleri izleyerek yeniden yapıyorum. Videoya aşina değilseniz, temel olarak tüm iletişimi manuel olarak ayarlar - servis referanslarını kullanmadan. Bunlar:Bir async WCF hizmetinin uygulanması
- tüm servis ve veri sözleşmeleri ile ortak Sözleşme - istemci ve sunucu tarafından başvurulan
- hizmet
- Vekil istemci haritalama hizmeti üzerinde sınıflar ve geçen çağrılar barındıran bir konsol uygulaması bunun için (ClientBase veya ClientFactory kullanarak)
Tüm adımlarını takip ettim ve bunun nereye gittiğini gerçekten çok seviyorum. Ancak, zaman uyumsuz servis çağrılarını ele almıyor ve kullanmak istediğim şey bu.
Bir Hizmet Başvurusu eklerken, "Eşzamansız işlemler üret" onay kutusunu işaretleyebilir ve MyServiceCompleted ve MyServiceAsync'i alırım. Bununla birlikte, bu, hizmet referansı eklendiğinde ortaya çıkan bir şey ve sanırım bu sınıflarda bazı sihir değil mi?
Bu nedenle, bir şekilde ClientBase veya ClientFactory'dan eşzamansız işlemler alabilir miyim? Yoksa asıl sunucu as hizmetlerini async olarak tanımlamalı mıyım? Öyleyse - birisi bana basit bir async hizmetiyle nasıl başlayacağınıza dair birkaç ipucu veya örnek verebilir mi? Konuyla ilgili MSDN üzerinde okumaya başladım, ama bu zaten bunu elde etmek için bir salak gibi tüm kafası karışmış hissetti ..
Teşekkürler! "[OperationContract (true AsyncPattern =)]" ile etiketlenmiş - Ve IMapProvider tanımlanan BeginGetImage ve EndGetImage fonksiyonlarına sahip olacaktır? Ve bu özel sonucu GetImageAsyncResult? – stiank81
Doğru - Web'de bir temel AsyncResult sınıfı buldum. GetImageAsyncResult bundan türemiştir. – Goran
Tamam - bu benim sorumu cevaplıyor. Ancak, ben hizmet uyumsuz yapmak istemediğini fark ettik, ama uyumsuz senkron servisini aramak istiyorum. Yani Müşteri tarafında halledeceğim. Bunu AsyncMethodCaller kullanarak kolayca çözerim. Yine de teşekkürler! – stiank81