Estoy implementando un tiempo de espera en una operación asíncrona (una serie de IO de red), y no estoy seguro de cuál es la perspectiva "mejor" (desde una asignación/rendimiento): crear un EventWaitHandle y usando RegisterWaitForSingleObject, o simplemente creando un Timer y usando su Tick..Net Timeouts: WaitForSingleObject vs Timer
En mi caso específico, el EventWaitHandle es de creación lenta, pero obviamente tendría que crearse una instancia para usar WaitForSingleObject. Así que realmente esta es una pregunta sobre el costo del recurso de un WaitHandle + WaitForSingleObject vs a Timer. Ambos enfoques son tan fáciles de implementar.
He implementado ambos en varias ocasiones, así que entiendo el terreno, no estoy seguro de qué enfoque es 'mejor'.
El artículo de su blog es a buena comparación de los usos, pero no es una recomendación muy fuerte para favorecer a uno frente al otro. Y cuanto más lo pensaba, más no podía ver ninguna diferencia en términos de transiciones del kernel y demás. Todavía me gustaría saber si hubo alguna diferencia en los costos de las API de Win32 subyacentes, pero el 'peso' de la implementación de .NET parece ser la mejor respuesta que he encontrado también. – piers7