Mientras trabajaba con un par de WebServices integrando Devices con Microsoft CRM, recordé que para poder realizar llamadas asincrónicas a los mismos, ahora tengo otra opción más además de los métodos Begin y End que traen los Webservices.

 

Básicamente es trabajar con el control BackgroundWorker. El mismo es de muy simple utilización, simplemente lo agregamos a nuestro form y utilizamos los eventos DoWork() y RunWorkerCompleted().

 

Por ejemplo, supongamos que necesitamos invocar a un WebService pasando un parámetro desde el Clic de un botón y mostrar el resultado de esta llamada en un MessageBog. Luego de agregar un control BackgroundWorker y renombrarlo como bwHelloWorld, agregamos el siguiente código al evento clic del botón.

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Me.bwHelloWorld.RunWorkerAsync("bruno")

End Sub

 

Como pueden ver, invocamos al método RunWorkerAsync del BackgroundWorker y la pasamos como parámetro un string. Luego en el evento DoWork(), agregamos el siguiente código.

 

Private Sub bwHelloWorld_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwHelloWorld.DoWork

       Dim ws As New localhost1.Service1

       Dim res As String = ""

       res = ws.HelloWorld(e.Argument)

       e.Result = res

End Sub

 

Este método invoca al WebService y procesa la ejecución del mismo. Finalmente, el evento RunWorkerCompleted() es el que se dispara cuando se termina el proceso en DoWork(). Dentro del mismo agregamos el siguiente código.

 

Private Sub bwHelloWorld_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwHelloWorld.RunWorkerCompleted

       MsgBox(e.Result)

End Sub

 

 

Realmente simple no ??

 

Saludos

One response to “Visual Studio 2005 – BackgroundWorker”

  1. Muy Interesante.. el control yo habio oido hablar de el. pero no sabia como funcionaba….Saludos y sigue publicando

    Like

Leave a reply to Pedro Cancel reply

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading