이 예제에서는 비동기 메서드 호출의 결과를 검색할 수 있도록 웹 서비스의 비동기 처리기 이벤트에 처리기를 연결합니다. 이 예제에서는 .에서 DemoTemperatureService 웹 서비스를 사용했습니다 http://www.xmethods.net
.
Visual Studio IDE(통합 개발 환경)에서 프로젝트에서 웹 서비스를 참조하면 해당 웹 서비스가 개체에 My.WebServices
추가되고 IDE가 클라이언트 프록시 클래스를 생성하여 지정된 웹 서비스에 액세스합니다.
프록시 클래스를 사용하면 애플리케이션이 함수가 완료되기를 기다리는 웹 서비스 메서드를 동기적으로 호출할 수 있습니다. 또한 프록시는 메서드를 비동기적으로 호출하는 데 도움이 되는 추가 멤버를 만듭니다. 각 웹 서비스 함수 인 NameOfWebServiceFunction에 대해 프록시는 NameOfWebServiceFunctionAsync
서브루틴, NameOfWebServiceFunctionCompleted
이벤트 및 NameOfWebServiceFunctionCompletedEventArgs
클래스를 만듭니다. 이 예제에서는 비동기 멤버를 사용하여 DemoTemperatureService 웹 서비스의 함수에 액세스 getTemp
하는 방법을 보여 줍니다.
비고
ASP.NET 개체를 지원하지 않으므로 이 코드는 웹 애플리케이션에서 My.WebServices
작동하지 않습니다.
비동기적으로 웹 서비스 호출
DemoTemperatureService 웹 서비스를
http://www.xmethods.net
에서 참조합니다. 주소는http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
TypeValidationCompleted 이벤트에 대한 이벤트 처리기를 추가합니다.
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
이벤트에 이벤트 처리기를 추가하고getTempAsync
메서드를 호출하는 메서드를 추가합니다.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
전달됩니다.
참고하십시오
.NET