次の方法で共有


方法: Web サービスを非同期で呼び出す (Visual Basic)

この例では、非同期メソッド呼び出しの結果を取得できるように、Web サービスの非同期ハンドラー イベントにハンドラーが割り当てられます。 この例では、http://www.xmethods.net の DemoTemperatureService Web net」と入力します。

Visual Studio 統合開発環境 (IDE) では、プロジェクトで Web サービスを参照すると、My.WebServices オブジェクトにその Web サービスが追加され、その Web サービスにアクセスするためのクライアント プロキシ クラスが生成されます。

このプロキシ クラスを使用すると、Web サービス メソッドを同期で呼び出すことができます。つまりアプリケーションは、関数が終了するまで待機します。 さらに、このプロキシは、メソッドを非同期で呼び出すために使用できる、追加的なメンバーを作成します。 プロキシは、それぞれの Web サービス関数 NameOfWebServiceFunction について、NameOfWebServiceFunctionAsync サブルーチン、NameOfWebServiceFunctionCompleted イベント、および NameOfWebServiceFunctionCompletedEventArgs クラスを作成します。 この例では、非同期のメンバーを使用して、DemoTemperatureService Web サービスの getTemp 関数にアクセスする方法を説明します。

注意

ASP.NET は My.WebServices オブジェクトをサポートしないため、このコードは Web アプリケーションでは動作しません。

Web サービスを非同期で呼び出すには

  1. http://www.xmethods.net の DemoTemperatureService Web 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 Web メソッドを非同期で呼び出すには、CallGetTempAsync メソッドを呼び出します。 Web メソッドが完了すると、その戻り値が getTempCompletedHandler イベント ハンドラーに渡されます。

参照

参照

My.WebServices オブジェクト (Visual Basic)

概念

アプリケーションの Web サービスへのアクセス (Visual Basic)