2012-10-01 29 views
7

¿Debo usar async/await a partir de ahora (C# 5) cada vez que no requiera el resultado de un método de forma inmediata (tarea <>) o tengo que activar un método único (nulo)?¿Cuándo debería usar async/await y cuándo no?

¿Debo usarlo en todos los casos cuando utilicé la clase de tarea en C# 4 y empujé el trabajo a los hilos de Backgroud?

¿Debo usarlo solo en los casos en que utilicé métodos asincrónicos .Net Framework?

Confundido.

Básicamente estoy buscando una explicación simple en qué casos debería usar await/async y cuándo no.

Respuesta

8

async/await se pueden usar cuando se tiene operaciones asincrónicas. Muchas operaciones son naturalmente asincrónicas (como E/S); Recomiendo async para todos esos. Otras operaciones son naturalmente sincrónicas (como computación); Recomiendo usar métodos síncronos para esos.

Puede usar Task.Run con async para trabajar en segundo plano si necesita ejecutar el código síncrono de forma asíncrona. Explico en mi blog por qué esto es better than BackgroundWorker and asynchronous delegates.

También puede usar async para reemplazar otras formas de procesamiento asincrónico, por ejemplo, el estilo IAsyncResult.

Usted debe utilice async en cualquier situación donde tenga una operación asincrónica.

Cuestiones relacionadas