Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a példa csatol egy kezelőt egy webszolgáltatás aszinkron kezelőeseményéhez, hogy lekérhesse az aszinkron metódushívás eredményét. Ez a példa a DemoTemperatureService webszolgáltatást használta a következő helyen http://www.xmethods.net: .
Amikor a Visual Studio Integrált fejlesztési környezetben (IDE) hivatkozik egy webszolgáltatásra a projektben, az hozzá lesz adva az My.WebServices objektumhoz, és az IDE létrehoz egy ügyfélproxy-osztályt egy adott webszolgáltatás eléréséhez
A proxyosztály lehetővé teszi a webszolgáltatás-metódusok szinkron meghívását, ahol az alkalmazás megvárja a függvény befejezését. A proxy emellett további tagokat is létrehoz a metódus aszinkron meghívásához. A proxy minden webszolgáltatás-függvényhez ( NameOfWebServiceFunction) létrehoz egy NameOfWebServiceFunctionAsync alrutint, egy NameOfWebServiceFunctionCompleted eseményt és egy NameOfWebServiceFunction osztálytCompletedEventArgs . Ez a példa bemutatja, hogyan használhatja az aszinkron tagokat a getTemp DemoTemperatureService webszolgáltatás funkciójának eléréséhez.
Megjegyzés:
Ez a kód nem működik webalkalmazásokban, mert ASP.NET nem támogatja az My.WebServices objektumot.
Webszolgáltatás aszinkron meghívása
Hivatkozzon a DemoTemperatureService webszolgáltatásra a következő címen
http://www.xmethods.net: . A cím a következő:http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdlAdjon hozzá egy eseménykezelőt a
getTempCompletedeseményhez:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End SubMegjegyzés:
A
Handlesutasítást nem használhatja arra, hogy eseménykezelőt társítson azMy.WebServicesobjektum eseményeihez.Adjon hozzá egy mezőt, amely nyomon követi, hogy az eseménykezelő hozzá lett-e adva az
getTempCompletedeseményhez:Private handlerAttached As Boolean = FalseAdjon hozzá egy metódust, amely szükség esetén hozzáadja az eseménykezelőt az
getTempCompletedeseményhez, és meghívja a metódustgetTempAsync: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 SubA
getTempwebes metódus aszinkron módon történő meghívásához hívja meg aCallGetTempAsyncmetódust. Amikor a webmetódus befejeződik, a rendszer átadja a visszatérési értékét azgetTempCompletedHandlereseménykezelőnek.