2012-03-17 15 views
13

¿Existe alguna API de temporizador nueva que me permita hacer esto?C# 5 y temporizadores asíncronos

await timer.wait(500); 

Básicamente, dormir durante X ms y luego reanudar la ejecución del resto de una función

Respuesta

21

uso Try

await Task.Delay(500); 
+0

Gracias, eso es exactamente lo que estoy buscando. – jz87

+3

Como era de esperar, también tiene sobrecargas para pasar un CancellationToken en caso de que esté en una operación de IU y necesite admitir la cancelación. :) http://msdn.microsoft.com/en-us/library/hh160377(v=vs.110).aspx –

10

tengo un ayudante que me gusta mucho, sólo para añadir una poco de legibilidad:

public static Task Seconds(this int seconds) 
{ 
    return Task.Delay(new TimeSpan(0,0,seconds)); 
} 

Esto me permite usar algo como

await 5.Seconds(); 

Puede hacer fácilmente métodos de extensión similares para milisegundos, minutos, horas o lo que sea.

+0

muy interesante :) –

Cuestiones relacionadas