|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.02.2011, 14:00 | #1 |
Регистрация: 14.02.2011
Сообщений: 7
|
Как в C# прервать работу цикла при нажатии клавиши
Есть цикл, например этот:
while(true) { Console.Write("Текст "); } Console.Write("Цикл завершился"); Console.ReadKey(); Цикл работает вечно. Нужно что бы он прерывался при нажатии какой то клавиши, например "Q" и продолжалась работа программы. Как это можно сделать? Помогите!!! |
14.02.2011, 14:09 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Console.ReadKey перенесите в цикл и там что-то вроде
Код:
|
14.02.2011, 14:19 | #3 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Вариант от Serge_Bliznykov немного не подходит, т.к. если его использовать, то на каждый проход цикла надо что-то вводить. Здесь надо использовать потоки. Т.е. свой цикл запускаешь в потоке, в цикле где-нить проверяешь переменную (напр. IsStopKeyPressed) если true то break. А на форме ловишь нажатие клавиш. Но этот вариант для форм, для консоли Ctrl+C сделает все за тебя.
|
14.02.2011, 14:25 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну, коллега, не согласен, достаточно использовать метод KeyAvailable для проверки, если ли нажатая клавиша или нет?
вот пример использования из MSDN: Код:
или, для вышеприведённого примера: Код:
Последний раз редактировалось Serge_Bliznykov; 14.02.2011 в 14:29. |
14.02.2011, 14:38 | #5 | |
Регистрация: 14.02.2011
Сообщений: 7
|
Цитата:
спасибо!!)сначала не работало, поменял false на true и пошло. То что надо |
|
14.02.2011, 14:48 | #6 |
Регистрация: 14.02.2011
Сообщений: 7
|
Код:
так даже лучше)) ___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 14.02.2011 в 15:35. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как прервать работу конструктора объекта? | teapot | Общие вопросы C/C++ | 15 | 05.12.2010 14:15 |
Закрытие окна при нажатии опр. клавиши на клавиатуре. | Borgond | Общие вопросы Delphi | 6 | 25.08.2010 01:14 |
завершение цикла при нажатии клавиши | LLIyPI/IK | Общие вопросы C/C++ | 8 | 12.02.2010 13:29 |
Обновление заданной области экрана при нажатии клавиши | Jack Torrance | Win Api | 3 | 26.05.2008 10:57 |
Событие при нажатии клавиши Enter | Inbox | Общие вопросы Delphi | 4 | 12.06.2007 14:18 |