Vanguarsoft Developers blog

Ing. Javier Leal -Desarrollador CPANAX C.A / Microsoft Student Partners – VENEZUELA

Métodos Async y Await en Silverlight (Programación asincrónica)

Deja un comentario

En este caso vengo a hablarles un poco sobre métodos Async dentro de lo que es programación asíncrona, estas se incluyen debido a que muchas aplicaciones hoy en día desarrolladas hacen métodos que realizar actividades pesadas y estas a su vez entorpecen el seguimiento de actividades, los métodos asíncronos te permiten que tu aplicación no quede paralizada al momento de ejecutar un método pesado en tu aplicación.

Actualmente con la nueva versión de Framework muchos métodos existentes ya se pueden ejecutar de manera Asíncrona y sabemos de las mismas por que el nombre del método termina con la palabra Async

Pero como convertimos un método síncrono en uno asíncrono… hay que cumplir las siguientes reglas el método sabemos que esta compuesto por un modificador de acceso luego el valor que revuelve, el nombre y los parámetros que requerirá el método algo como esto ejemplo.

public string NombreMetodo(string Parametro 1)

{

}

Este método también puede ser un evento para utilizar un Await hay que seguir unas normas que son las siguientes;

La tarea a la que se aplican al operador await normalmente es el valor devuelto por una llamada a un método que implemente Modelo asincrónico basado Tarea-. Incluir valores de ejemplos Task cualquiera Task<TResult>.

Por tanto si queremos utilizar estos eventos asíncronos debemos seguir esta norma en este caso usaremos un ejemplo sencillo. crearemos nuestro propio método que cumpla con esta norma, estos métodos Asíncronos existen en la nueva versión de Framework, métodos que ya conocemos y han sido ampliados para ejecutarse de manera asíncrona o tu mismo puedes desarrollar tus métodos en este caso usaremos este ejemplo.

public async Task<string> EsperaAsync()
{
    await Task.Delay(10000);
    return "Final";
}

Este método da un retarlo de unos segundos si queremos que nuestro método principal ejecute el mismo y devolver el valor que en un simple string debemos llamar a este método anticipado de un Await.

public string NombreMetodo(string Parametro 1)

{

string result = await EsperaAsync();

}

En este momento el código dará un error por que para poder utilizar el Await hay que colocar luego del modificador de acceso del Método la palabra reservada async.

public async string NombreMetodo(string Parametro 1)

{

string result = await EsperaAsync();

}

Para probar este código es bastante sencillo y lo podemos usar con WPF, Aplicaciones en Windows , Silverlight 5

Construimos una pantalla con un Textbox y con un botón el botón ejecutara el método y este debe mostrar el valor y mientras lo haces veras que puedes hacer cualquier otra función, para no hacer trabajo doble vamos a utilizar el evento click del botón para hacer el await y veras que el los mismo que lo anterior.

.

private async void button1_Click(object sender, EventArgs e)
{
    // Llamar al método asíncrono
    string result = await EsperaAsync();

    // Podríamos llamar a un segundo método.
    //string result = await EsperaAsync();

    // Mostrar el Resultado.
    textBox1.Text += result;
}

Esto es un ejemplo bastante básico y espero los ayude a comprender estos métodos muy útiles para la próxima generación de aplicaciones que ya tenemos en las manos,

Autor: Ing. Javier J. Leal H.

Desarrollador en CPANAX C.A, Microsoft Student Partners de Venezuela Amantes de nuevas Tecnologías Desarrollador es Silverlight 5, Windows 8, Windows Phone, Influenciador y Orador en Actividades Tecnológicas Microsoft

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s