[ Foro de C# ]

Console.ReadKey() por solo 5 segundos

25-Apr-2015 10:11
Invitado (Invitado)
1 Respuestas

Hola! Primera vez en el foro.
Quiero preguntar si a alguien se le ocurrió hacer esto: Tengo una aplicación de Consola que muestra por pantalla datos de una factura (fecha, cliente, importe, etc.) pero quiero lo haga por 5 segundos o hasta que el usuario presione cualquier tecla.  Osea sería como imprimir los datos en pantalla, hacer un Thread.Sleep(5000) y que luego continue el ciclo del programa, pero que se pueda presionar alguna tecla antes de los 5000 milisegundos y que continue el ciclo.


25-Apr-2015 10:40
Nacho Cabanes (+83)

Si haces un "Thread.Sleep", el programa se detiene durante 5 segundos, pero no menos, como ya has comprobado.

La solución es:
- Mirar la hora del sistema
- Hacer un do-while, que repita mientras no hayan pasado 5 segundos (comparando la hora actual con la que habías mirado al principio) y no se pulse una tecla (con "Console.KeyAvailable"):

https://msdn.microsoft.com/es-es/library/system.console.keyavailable%28v=vs.110%29.aspx
 






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)