С#, System.Console
на вопрос в таком тоне хочется и ответить соответствующе...
Извини, просто я часа три ебался, и если бы мне кто-нибудь предложил взять стрим из Console.In я бы мог просто не сдержаться
А чем не подходит еще один тред? Или я не догоняю?
гм... писать на manager c++ и юзать обычную консоль?..
Хотелось бы чтобы выглядело это так: прога считает, рисует разные точечки етс., тут юзер жмёт какую-нить кнопку, поскольку прога ничего не вводит, кнопка так и остаётся в буфере (и на экран не попадает но как только очередная итерация завершается, прога узнаёт что у неё keystroke pending, и вызывает наконец ReadLine.
Странно это всё, короче. Щаз попробую действительно вычисления в другой тред засунуть, может быть это будет не так ужасно...
Ни разу не пробовал манагед С++ и как-то не горю желанием. Кроме того, что-то я сомневаюсь, что там есть "обычная консоль" =)
а зачем тебе вообще консоль?
Console.ReadKey
>Console.ReadKey
Это что?
Да, фреймворк 1.1, на всякий случай.
2Атилла - ну типа для моих текущих целей вполне подходит юникс-вей. Почти. Ну то есть понятно, что если проге скармливают данные из файла, то этот самый детект надо выключить. А когда за терминалом пользователь, хочется некоторой интерактивности.
Ой, маза, мб стоило попытаться ctrl-Break отловить?
Лана, вопрос закрыт, я уже вынес все вычисления в другой тред. Вроде работает.
> Да, фреймворк 1.1, на всякий случай
оказалось, что это фреймоворк 2.0
Ага. Ясно, буду знать, что где-то впереди есть светлое будущее, спасибо!
Короче! Я нашёл в примере на System.GC.KeepAlive установку хендлера на ctrl+Break. Очень мазёво получилось. Оказывается, у винды весьма пёздая консоль, очень много интересных функций кругом неё бродит. Например, можно мышиные мессаги ловить консолью - то есть они будут в каком-то формате слаться в тот же стдин, правда, его читать нужно какой-то специальной функцией, чтобы их не отфильтровало. Вот.
Ты хочешь сделать unix way? Судя, по содержимому треда это не так просто сделать во враждебной среде.
Оставить комментарий
bleyman
У меня вдруг возникло вполне простое и понятное желание - узнать, а не попытался ли юзер что-нить ввести. В консольном приложении. Ну то есть прога работает, работает, периодически завершает очередную итерацию, и, если юзер чё-нить нажал, то она могла бы не считать дальше, а поинтересоваться не нужно ли ему чего.Как?
Да, свои гениальные идеи (через треды, попиздить у консоли стрим и у него делать неблокирующее чтение) желательно вначале проверять а потом озвучивать.
Спасибо.