.NET 4.x Выход из цикла по нажатию клавиши - C#
Формулировка задачи:
В очередной раз поднимаю эту тему.
Задача такая, ходить по циклу бесконечное количество раз и завершить его после нажатия Esc.
В моём случае почему то btn.key == ConsoleKey.Escape не работает, так как btn не существует в данном контексте.
Благодарю за ответы.
namespace PingMonitor
{
class ReadFile
{
public void ReadAndPing(string path)
{
File.OpenRead(path);
do // Начала цикла
{
foreach (string ip in File.ReadLines(path)) //читаем в ip строки из файла в path
{
//Console.WriteLine(ip);
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.Ttl = 60; //Продолжительность жизни пакета в секундах
int timeout = 120; //Таймаут выводется в ответе reply.RoundtripTime
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; //Строка длиной 32 байта
byte[] buffer = Encoding.ASCII.GetBytes(data); //Преобразование строки в байты, выводится reply.Buffer.Length
PingReply reply = pingSender.Send(ip, timeout, buffer, options);
Console.WriteLine("Сервер: {0} Время={1} TTL={2}", reply.Address.ToString(), reply.RoundtripTime, reply.Options.Ttl); //Выводим всё на консоль
}
// ConsoleKeyInfo btn = Console.ReadKey(); //Создаём переменную которая хранит метод Описывающий нажатую клавишу консоли
// if (btn.Key == ConsoleKey.Escape) break;
var btn = Console.ReadKey(); //Переенная для чтения нажатия клавиши
}
while (btn.key == ConsoleKey.Escape); //Чтение нажатия клавиши.
}
}
}Решение задачи: «.NET 4.x Выход из цикла по нажатию клавиши»
textual
Листинг программы
ConsoleKeyInfo btn;
do
{
//...
btn = Console.ReadKey();
}
while (btn.Key != ConsoleKey.Escape);