2010-04-06 18 views

Respuesta

37

Por lo general, no utiliza un temporizador para esto - utiliza un Stopwatch.

Stopwatch sw = Stopwatch.StartNew(); 
// Do work 
sw.Stop(); 
TimeSpan elapsedTime = sw.Elapsed; 

Si está realizando la evaluación comparativa de algo relativamente rápido, vale la pena hacerlo muchas, muchas veces, así que el tiempo empleado es significativa (por lo general voy durante 5-30 segundos). Eso no siempre es factible, y hay muchas más sutilezas que afectan el rendimiento en el mundo real (como aciertos/errores de caché) que a menudo fallan en la micro-evaluación comparativa.

Básicamente, tenga cuidado, pero Stopwatch es probablemente el mejor punto de partida en muchos casos.

+1

+1 para el Stopwatch.StartNew(). No sabia sobre eso. – Joop

+0

"Generalmente no lo hace" contra "Generalmente no lo hace". Ilumíname: ¿ambos son la gramática correcta? –

+1

@Martinho: I * think * ambos son aceptables. Es posible que uno se prefiera sobre el otro, aunque no sabría cuál :) –

0

Puede usar un Timer y adjuntar una acción al evento Elapsed. Por ejemplo, puedes abortar tu hilo ... hmm si no tienes miedo de las consecuencias ... En realidad, puedes hacerlo si quieres establecer un tiempo de espera para tu proceso, por ejemplo.

Si es sólo para la supervisión, cronómetro simplemente se adapte a sus necesidades

+0

Lectura interesante sobre el aborto de hilos: http://blogs.msdn.com/ericlippert/archive/2010/02/22/should-i-specify-a-timeout.aspx y http://blogs.msdn.com/ericlippert /archive/2010/02/25/careful-with-that-axe-part-two-what-about-exceptions.aspx –

Cuestiones relacionadas