Quiero una función de lectura sin bloqueo desde la consola.lectura sin bloqueo desde E/S estándar en C#
Respuesta
var buf=new byte[2048];
var inputStream=Console.OpenStandardInput(); //dispose me when you're done
inputStream.BeginRead(buf,0,buf.Length,ar=>{
int amtRead=inputStream.EndRead(ar);
//buf has what you need. You'll need to decode it though
},null);
¿No olvidó el parámetro de conteo? – CodesInChaos
... Sí. ¡Gracias! – spender
¿Cuándo se activará su 'EndRead'? Creo que solo si llega al final de la transmisión, o cuando el búfer está lleno, y no si solo hay unos pocos caracteres de entrada disponibles. – CodesInChaos
Richard Dutton tiene una solución en his blog:
while (true)
{
if (Console.KeyAvailable)
{
ConsoleKeyInfo key = Console.ReadKey(true);
switch (key.Key)
{
case ConsoleKey.F1:
Console.WriteLine("You pressed F1!");
break;
default:
break;
}
}
// Do something more useful
}
el 'ConsoleKeyInfo' contiene el campo' KeyChar' que representa la representación 'char', que podría ser lo que quiere el OP. – CodesInChaos
Ouch. De Verdad? ¿Simplemente gira un bucle lo más rápido posible hasta que haya una tecla disponible? Eso es estúpido. – spender
@spender Es por eso que existe el comentario '// Hacer algo más útil' allí. – CodesInChaos
- 1. cómo leer desde entrada estándar sin bloqueo?
- 2. lectura() desde la entrada estándar
- 3. Archivo sin bloqueo lee
- 4. Iniciar proceso sin bloqueo desde powershell
- 5. ¿Cómo realizo una lectura sin bloqueo usando asio?
- 6. ¿Cómo hago una lectura de IPC sin bloqueo en Windows?
- 7. Lectura desde el estándar en el uso de ios :: binario
- 8. no buffering entrada estándar lectura
- 9. lectura/registro sin bloqueo de una secuencia HTTP
- 10. Bloqueo sin bloqueo
- 11. Lectura línea por línea de STDIN sin bloqueo
- 12. Lectura desde el puerto serie en C#
- 13. C++ plantilla de objeto sin bloqueo
- 14. Lectura de bytes sin formato desde un puerto en serie
- 15. Entrada de consola sin bloqueo C++
- 16. cola segura para hilos sin bloqueo en C++?
- 17. Bloqueo en C#
- 18. Bloqueo de lectura y escritura con GCD
- 19. Dormir sin bloqueo en C# 5.0 (como setTimeout en JavaScript)
- 20. ¿Es este estándar válido c?
- 21. .Net/C# manager de bloqueo distribuido necesario
- 22. ¿Lectura de datos desde USB usando C#?
- 23. construcción de bloqueo de lectura/escritura reentrante?
- 24. JPA: ¿Cómo funciona el bloqueo de lectura?
- 25. Confusión de bloqueo de lectura/escritura
- 26. Construcciones sin bloqueo en .net
- 27. Función de espera sin bloqueo en Objective-C
- 28. programación de socket udp sin bloqueo en C: ¿qué obtengo?
- 29. Javascript sin bloqueo
- 30. ¿Colección concurrente sin bloqueo?
Por qué no es una cuestión real? Entiendo cerrando como duplicado, pero como "no es una pregunta real" me parece extraño. – CodesInChaos
@Mitch Wheat: ¿No está bloqueando ReadKey? – jgauffin
@Mitch, necesita combinar al menos 'KeyAvailable' y' ReadKey'. Y todavía no estoy seguro de si eso es lo correcto, y cómo interactúa con la entrada redirigida o las claves muertas. Entonces ciertamente no es una pregunta trivial. – CodesInChaos