s'appuient fréquemment sur Console.ReadLine()
pour l'entrée utilisateur. Cependant, des situations surviennent lorsqu'un délai de réponse est nécessaire pour empêcher le programme indéfini se bloque.
Diverses solutions existent, mais beaucoup échouent:
Console.ReadLine()
manquent souvent de fonctionnalités cruciales comme le support de clés de retour, de suppression et de flèche. Reader
Cette approche améliorée évite l'attention occupée pour un mécanisme de délai d'expiration plus efficace et fiable. Une classe personnalisée Reader
utilise un thread d'arrière-plan pour gérer les entrées, offrant ces méthodes:
Reader.ReadLine(int timeoutMillisecs = Timeout.Infinite)
: lit une ligne avec un délai d'attente facultatif. Si timeoutMillisecs
est omis, il attend indéfiniment. Reader.TryReadLine(out string line, int timeoutMillisecs = Timeout.Infinite)
: similaire à ReadLine
, mais renvoie true
sur la saisie réussie dans le délai d'expiration, false
sinon. L'entrée est disponible dans le paramètre line
en cas de succès. pour utiliser cette solution:
Reader
. Reader.ReadLine()
ou Reader.TryReadLine()
avec votre délai d'attente souhaité (en millisecondes). TimeoutException
Si Reader.ReadLine()
fois out. Reader.TryReadLine()
et accédez à l'entrée via le paramètre out
. Cette méthode offre plusieurs avantages clés:
Console.ReadLine()
, y compris la manipulation spéciale des clés. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!