Bagikan melalui


Cara: Memanggil Layanan Web Secara Asinkron (Visual Basic)

Contoh ini melampirkan handler ke peristiwa handler asinkron layanan Web, sehingga dapat mengambil hasil panggilan metode asinkron. Contoh ini menggunakan layanan Web DemoTemperatureService di http://www.xmethods.net.

Saat Anda mereferensikan layanan Web dalam proyek Anda di Visual Studio Integrated Development Environment (IDE), layanan tersebut ditambahkan ke My.WebServices objek, dan IDE menghasilkan kelas proksi klien untuk mengakses layanan Web tertentu

Kelas proksi memungkinkan Anda memanggil metode layanan Web secara sinkron, di mana aplikasi Anda menunggu fungsi selesai. Selain itu, proksi membuat anggota tambahan untuk membantu memanggil metode secara asinkron. Untuk setiap fungsi layanan web, NameOfWebServiceFunction, proksi membuat subrutin NameOfWebServiceFunctionAsync, acara NameOfWebServiceFunctionCompleted, dan kelas NameOfWebServiceFunctionCompletedEventArgs. Contoh ini menunjukkan cara menggunakan anggota asinkron untuk mengakses getTemp fungsi layanan Web DemoTemperatureService.

Nota

Kode ini tidak berfungsi di aplikasi Web, karena ASP.NET tidak mendukung objek.My.WebServices

Memanggil layanan Web secara asinkron

  1. Referensikan layanan Web DemoTemperatureService di http://www.xmethods.net. Alamatnya adalah

    http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
    
  2. Tambahkan penanganan aktivitas untuk peristiwa getTempCompleted:

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

    Nota

    Anda tidak dapat menggunakan Handles pernyataan untuk mengaitkan pengendali acara dengan acara pada objek My.WebServices.

  3. Tambahkan bidang untuk melacak apakah penanganan aktivitas telah ditambahkan ke getTempCompleted peristiwa:

    Private handlerAttached As Boolean = False
    
  4. Tambahkan metode untuk menambahkan penanganan aktivitas ke getTempCompleted peristiwa, jika perlu, dan untuk memanggil getTempAsync metode :

    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
    

    Untuk memanggil metode Web getTemp secara asinkron, panggil metode CallGetTempAsync. Ketika metode Web selesai, nilai pengembaliannya diteruskan ke penanganan getTempCompletedHandler aktivitas.

Lihat juga