كيفية القيام بما يلي: استدعاء الخدمة الويب بشكل غير متزامن

يرفق هذا المثال معالج إلى معالج الحدث لخدمة الويب غير المتزامن ، لذلك يمكنه استرداد نتيجة استدعاء الأسلوب الغير متزامن. يستخدم هذا المثال خدمة ويب DemoTemperatureService في .http://www.xmethods . net.

عند الإشارة إلى خدمة الويب في المشروع في Visual Studio بيئة التطوير المتكاملة (IDE) ، تتم إضافتها إلى كائن My.WebServices و تنشئ IDE فئة وكيل العميل للوصول إلى خدمة الويب المحددة

تسمح لك فئة الوكيل باستدعاء أساليب خدمة الويب بشكل متزامن, حيث ينتظر التطبيق الخاص بك الدالة للإكتمال. و بالإضافة إلى ذلك، ينشئ الوكيل أعضاء إضافية للمساعدة في استدعاء الأسلوب بشكل غير متزامن. لكل دالة خدمة ويب , NameOfWebServiceFunction ينشئ الوكيل الروتين الفرعي NameOfWebServiceFunctionAsync و حدث NameOfWebServiceFunctionCompleted و فئة NameOfWebServiceFunctionCompletedEventArgs. يوضح هذا المثال كيفية استخدام الأعضاء الغير متزامنة للوصول إلى دالة getTemp لخدمة ويب DemoTemperatureService.

ملاحظة

لن تعمل هذه التعليمات البرمجية في تطبيقات الويب لأن ASP.NET لا يعتمد كائن My.WebServices.

لاستدعاء خدمة الويب بشكل غير متزامن

  1. الرجوع إلى خدمة الويب .DemoTemperatureService في http://www.xmethods . net. العنوان هو

    http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
    
  2. قم بإضافة معالج الحدث لحدث getTempCompleted:

    Private Sub getTempCompletedHandler(ByVal sender As Object, 
        ByVal e As net.xmethods.www.getTempCompletedEventArgs)
    
        MsgBox("Temperature: " & e.Result)
    End Sub
    

    ملاحظة

    لا يمكنك استخدام كشف Handles لإقران معالج الأحداث مع أحداث كائن My.WebServices.

  3. تمت الإضافة حقل لتعقب م إذا تمت إضافة معالج الأحداث إلى حدث getTempCompleted:

    Private handlerAttached As Boolean = False
    
  4. لإضافة التعليمات البرمجية هذه ، قم بإضافة معالج الحدث إلى حدث 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.

راجع أيضًا:

المرجع

كائن My.WebServices

المبادئ

الوصول إلى خدمات ويب التطبيق