كيفية القيام بما يلي: استدعاء الخدمة الويب بشكل غير متزامن
يرفق هذا المثال معالج إلى معالج الحدث لخدمة الويب غير المتزامن ، لذلك يمكنه استرداد نتيجة استدعاء الأسلوب الغير متزامن. يستخدم هذا المثال خدمة ويب DemoTemperatureService في .http://www.xmethods . net.
عند الإشارة إلى خدمة الويب في المشروع في Visual Studio بيئة التطوير المتكاملة (IDE) ، تتم إضافتها إلى كائن My.WebServices و تنشئ IDE فئة وكيل العميل للوصول إلى خدمة الويب المحددة
تسمح لك فئة الوكيل باستدعاء أساليب خدمة الويب بشكل متزامن, حيث ينتظر التطبيق الخاص بك الدالة للإكتمال. و بالإضافة إلى ذلك، ينشئ الوكيل أعضاء إضافية للمساعدة في استدعاء الأسلوب بشكل غير متزامن. لكل دالة خدمة ويب , NameOfWebServiceFunction ينشئ الوكيل الروتين الفرعي NameOfWebServiceFunctionAsync و حدث NameOfWebServiceFunctionCompleted و فئة NameOfWebServiceFunctionCompletedEventArgs. يوضح هذا المثال كيفية استخدام الأعضاء الغير متزامنة للوصول إلى دالة getTemp لخدمة ويب DemoTemperatureService.
ملاحظة
لن تعمل هذه التعليمات البرمجية في تطبيقات الويب لأن ASP.NET لا يعتمد كائن My.WebServices.
لاستدعاء خدمة الويب بشكل غير متزامن
الرجوع إلى خدمة الويب .DemoTemperatureService في http://www.xmethods . net. العنوان هو
http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
قم بإضافة معالج الحدث لحدث getTempCompleted:
Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End Sub
ملاحظة
لا يمكنك استخدام كشف Handles لإقران معالج الأحداث مع أحداث كائن My.WebServices.
تمت الإضافة حقل لتعقب م إذا تمت إضافة معالج الأحداث إلى حدث getTempCompleted:
Private handlerAttached As Boolean = False
لإضافة التعليمات البرمجية هذه ، قم بإضافة معالج الحدث إلى حدث getTempCompleted إذا كان ضرورياً ، و لاستدعاء أسلوب getTempAsynch:
Sub CallGetTempAsync(ByVal zipCode As Integer) If Not handlerAttached Then AddHandler My.WebServices. TemperatureService.getTempCompleted, AddressOf Me.TS_getTempCompleted handlerAttached = True End If My.WebServices.TemperatureService.getTempAsync(zipCode) End Sub
لاستدعاء أسلوب الويب getTemp بشكل غير متزامن ، استدعي أسلوب CallGetTempAsync. و عند انتهاء أسلوب الويب, يتم تمرير القيمة الإرجاع الخاصة به إلى معالج الأحداث getTempCompletedHandler.