Sdílet prostřednictvím


Postupy: Asynchronní volání webové služby (Visual Basic)

V tomto příkladu dojde k připojení obslužné rutiny na asynchronní obslužnou rutinu události webové služby tak, aby bylo možné načíst asynchronní volání metody. Tento příklad používá webovou službu DemoTemperatureServic na protokol http://www.xmethods. net.

V případě, že se odkazujete na webovou službu ve vašem projektu v Integrované vývojové prostředí (IDE) Visual Studio, je přidána do objektu My.WebServices a rozhraní IDE nageneruje klientskou proxy třídu pro přístup k zadané webové službě.

Proxy třída umožňuje volat metody webové služby synchronně, když aplikace čeká na dokončení funkce. Kromě toho proxy vytvoří další členy k usnadnění volání metod asynchronně. Pro každou funkci webové služby, NameOfWebServiceFunction vytvoří proxy podprogram NameOfWebServiceFunctionAsync, událost NameOfWebServiceFunctionCompleted a třídu NameOfWebServiceFunctionCompletedEventArgs. Tento příklad demonstruje použití asynchronních členů pro přístup k funkci getTemp webové služby DemoTemperatureService.

Poznámka

Tento kód není funkční ve webových aplikacích, protože technologie ASP.NET nepodporuje objekt My.WebServices.

Chcete-li volat webovou službu asynchronně

  1. Odkaz na webovou službu DemoTemperatureService na adrese http://www.xmethods. net. Adresa je

    http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
    
  2. Přidejte obslužnou rutinu pro událost getTempCompleted.

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

    Poznámka

    Nemůžete použít příkaz Handles k přidružení obslužné rutiny události s objektem události My.WebServices.

  3. Přidejte pole ke sledování zda byla obslužná rutina přidána k události getTempCompleted:

    Private handlerAttached As Boolean = False
    
  4. Přidejte metodu k přidání obslužné rutina k události getTempCompleted pokud je to nutné a k volání metody 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
    

    Chcete-li volat webovou metodu getTemp asynchronně, volejte metodu CallGetTempAsync. Po dokončení metody webové služby, je její vrácená hodnota předána obslužnou rutinou getTempCompletedHandler.

Viz také

Odkaz

My.WebServices Object

Koncepty

Přístup k aplikaci Web Services (Visual Basic)