Wednesday, February 18, 2009

Call WCF Service Operations Asynchronously

Private nor As SilverService.SilverServiceClient = Nothing

Options 1: Begin/End event
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim pat As New PageAsyncTask(AddressOf BeginGetDataAsync, AddressOf EndGetDataAsync, Nothing, Nothing)
Page.RegisterAsyncTask(pat)
End Sub

Private Function BeginGetDataAsync(ByVal sender As Object, ByVal e As EventArgs, ByVal acb As AsyncCallback, ByVal extraData As Object) As IAsyncResult
nor = New SilverService.SilverServiceClient()
Return nor.BeginGetData("Limin", acb, extraData)
End Function

Private Sub EndGetDataAsync(ByVal ar As IAsyncResult)
lblInfo.Text = nor.EndGetData(ar)
End Sub



Option 2: Completed Event
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
nor = New SilverService.SilverServiceClient()
AddHandler nor.GetDataCompleted, AddressOf Client_GetDataCompleted
nor.GetDataAsync("Limin")
End Sub

Private Sub Client_GetDataCompleted(ByVal sender As Object, ByVal e As SilverService.GetDataCompletedEventArgs)
lblInfo.Text = e.Result.ToString
nor = Nothing
End Sub

No comments:

Blog Archive