Si tengo un método normal que yo quiero hacer asíncrono:¿Por qué utilizar async y esperar con Task <>?
public int Foo(){}
que haría:
public Task<int> FooAsync(){
return Task.Run(() => Foo());
}
qué iba a hacer:
public async Task<int> FooAsync(){
return await Task.Run(() => Foo());
}
La forma en que planeo use esto es:
FooAsync().ContinueWith((res) => {});
Quiero que el método se ejecute sin parar, pero quiero que se active algo así como una devolución de llamada, de ahí el ContinueWith
. Pero con la segunda versión, ¿hay algún punto para usarla?
¡excelente descripción! – paulsm4
Gracias, @ paulsm4. Debo decir que estoy volviendo a contar lo que escuché recientemente, creo, es de http://hanselminutes.com/327/everything-net-programmers-know-about-asynchronous-programming-is-wrong, pero no 100% seguro. Todavía no tengo mucha experiencia con la función de sincronización, por lo que podría estar equivocado y me gustaría saber más, tal vez asincrónico proporciona algunos beneficios en este caso. –
Además, es posible que desee leer [¿Debo exponer los contenedores asíncronos para los métodos síncronos?] (Http://blogs.msdn.com/b/pfxteam/archive/2012/03/24/10287244.aspx) (La respuesta casi siempre es "no"; si tiene un método sincrónico, entonces dele una firma de método sincrónico). –