c пауза в цикле

Я отряхиваю c++ с классом колледжа, и я столкнулся со странной проблемой, с которой у меня проблемы с диагностикой.

Код компилируется и работает нормально с желаемым результатом, но после получения правильной записи программа, кажется, зависает [ENTER] прежде чем продолжить

Программа получает данные, которые она использует для создания файла под этим именем.

Как можно избежать зависания программы в ожидании [ENTER] ?

Решение

Твоё отступление от твоего отступления. validateUserName на самом деле должен выглядеть так:

И то, на чем мы действительно хотим сосредоточиться — это часть цикла do while

Теперь вы можете видеть, что если у вас нет ошибок в вводе, вы по-прежнему запрашиваете ввод как getline(cin, name); не внутри, если. Мы можем легко это исправить, добавив фигурные скобки, такие как

Другие решения

Вы должны поместить свою проверку в блок с областью видимости:

На данный вопрос уже ответили:

Если использовать в цикле паузу System.Threading.Thread.Sleep(1000), то на паузу ставится вся программа. Мне нужно, чтобы во время паузы в цикле я мог нажимать на кнопки Windows Forms.

Отмечен как дубликат участниками rdorn, Pavel Mayorov c# Участники со знаками c# могут единолично закрывать вопросы с меткой c# как дубликаты, а также повторно открывать их при необходимости. 14 фев ’18 в 13:34 .

Подобный вопрос задавали ранее и на него уже получен ответ. Если представленные ответы не являются исчерпывающими, пожалуйста, задайте новый вопрос.

1 ответ 1

Простой пример запуска таймера потом его использования. Первой кнопкой запускаем таймер, который увеличивает i. Второй кнопкой помещаем i в поле. Таким способом можно решить Вашу проблему. Программа не будет зависать.

UPD В вашем случае цикла не будет, а будет вызываться нужный код в самом таймере (например там будет вызов функции, которая ранее была у Вас в цикле)

Для остановки цикла можно использовать timer1.Enabled = false; , который вызывать при нажатии кнопки

Sevenup

Client

Такая вот дилемма: например на странице есть JS и много флеша. При использовании стандартного кубика «пауза» или C# кода System.Threading.Thread.Sleep(10 * 1000); получаю паузу 10с, но все процессы на странице замирают. Например видеоплеер остановит воспроизведение и т.д.

Существуют ли еще способы отсрочить закрытие окна(инстанса) в ZP, некий другой способ паузы либо как вариант мне подойдет проверка активности сети, т.е. перестал ли инстанс слать аяксы и вообще что-то отправлять или получать.

всем заранее спасибо за ответ.

arhip1985

Client

300 — это пауза в миллисекундах, можно больше ставить, кубик завершится если всплывшее окно закроете

этот метод в последних версиях был добавлен, не помню уже в какой

Valiksim

Client

Dimionix

Moderator

Sevenup

Client

300 — это пауза в миллисекундах, можно больше ставить, кубик завершится если всплывшее окно закроете

этот метод в последних версиях был добавлен, не помню уже в какой

спасибо! данный метод вроде работает. Значение указывается в секундах.

Дальше буду копать как определить активность в табе, продолжаются ли сетевые соединения и т.д.

Sevenup

Client

Костыль, но сработал. Цикл, выход после действия нажатия? Не вариант.

Dimionix

Moderator

А если попробовать поиграться с этими чекбоксами?

Valiksim

Client

Sevenup

Client

А если попробовать поиграться с этими чекбоксами?

ну это аналог:
instance.IgnoreAjaxRequests = true;
instance.IgnoreAdditionalRequests = false;
instance.IgnoreFrameRequests = false;
instance.IgnoreFlashRequests = true;

т.е. просто включение или отключение игнорирование Ajax и прочих зпросов, а я как раз хочу дождаться, пока они все выполнятся, а инстанс закрывается раньше, почему не понимаю. В принципе вариантом instance.WaitForUserAction(10); принудительно жду 10с, пока хоть так

Dimionix

Moderator

Sevenup

Client

дык точно такой код у меня в самом начале проекта, так как например без instance.IgnoreFlashRequests = false; в флеше не загружался контент. Но фишка в том, что видимо происходит какая-то пауза внутри флеша между запросами, а инстанс закрывается, когда доходит до последнего кубика.

как вариант пробую сейчас (эксперементирую) делать так:
Tab tab = instance.ActiveTab;
if (tab.IsBusy) tab.WaitDownloading();
потом пауза и снова проверка if (tab.IsBusy)
так в цикле несколько раз. что бы словить последующие запросы флеша и уже если через например 10 циклов tab.IsBusy=false тогда уж переход дальше по цепочке кубиков и закрытие инстанса.

возможно это глюк какой в зенно, суть темы была в том, что при стандартной паузе останавливались события внутри флеша, например проигрывание видео.

Понравилась статья? Поделиться с друзьями:
Vkontakte.INFO
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: