| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Цикл до определеного условия? |
| Автор: WaReZMEN 23.7.2008, 01:03 | ||
Вообщем есть у меня код:
Все это делается в кансоле работает все отлично кроме того что процессор загружается на 99% что не очень хорошо... Что хочется: организовать некий процесс каторый ждал бы когда именится условие P<>'' . Выполнил определеное деиствие и равершил свою работу... Только как это организовать не ясно... Есть у каго какие идеи? |
| Автор: Данкинг 23.7.2008, 01:09 | ||
| По теме: зачем что-то изобретать, когда оное уже изобретено.
|
| Автор: WaReZMEN 23.7.2008, 03:02 |
| Данкинг, Прошу прощение за ошибки русский это моя слабость.... по поводу Goto...label Еще в школе учили что чем больше goto тем ниже квалификация программиста... К томуже эта канструкция практически не чем не отлечается от Repeat ... Until P<>''. Процессор попрежнему весь загружен... Вообще нужно сделать какоито системный процес и делать через него но как я не вкурсе... |
| Автор: THandle 23.7.2008, 05:15 |
| WaReZMEN, можно использовать например ожидание в цикле, миллисекунд этак 200-400. Можно, я думаю использовать дополнительный поток... |
| Автор: WaReZMEN 23.7.2008, 05:21 |
| THandle, с задержкои све ок спасибо большое!!!! Но про паток тоже интересно если можно раскажи. |
| Автор: THandle 23.7.2008, 05:49 |
| Лучше чем тут, про потоки уже нигде не расскажут: http://forum.vingrad.ru/forum/topic-60076.html |
| Автор: Snowy 23.7.2008, 12:01 | ||||
| Проверять всё равно придётся. Но тут поможет простое отпускание треда. Дай в цикле строчку
Добавлено через 3 минуты и 14 секунд
Да и никакого отношения к решению вопроса не имеет. Ну абсолютно никакого. Просто замена нормально конструкции на идиотскую. Код ухудшается, а результата по прежнему никакого. |
| Автор: Rennigth 23.7.2008, 13:25 |
| Snowy, а почему sleep именно 32? Методом проб и ошибок подобранно? Почему не Sleep(0)? разницы то почти не будет, а может и совсем не будет... |
| Автор: Snowy 23.7.2008, 13:52 |
| 32 - стандартный тайминг. А ноль не во всех версиях винды срабатывает... В теории должен. На практике вот... |
| Автор: Данкинг 23.7.2008, 21:58 |
Ну да, как же, а ещё каждую строчку кода следует непременно комментировать, а процедурам давать имена вроде "my_procedure_for_timer1". Я привёл другой вариант решения данной задачи. Нагрузку на процессор при этом не проверял. |
| Автор: WaReZMEN 24.7.2008, 01:39 |
| когда THandle сказал попробовать задержку я именно sleep и поставил |
| Автор: greenpc 24.7.2008, 09:15 |
| Snowy, вроде Application.ProcessMessages тоже не отменяли |
| Автор: sai_NT 24.7.2008, 09:53 | ||
Не отменяли, но нагрузки на проц это не уменьшит, просто окно сможет обрабатывать посылаемые ей сообщения =) |
| Автор: Snowy 24.7.2008, 12:38 |
| Ну Sleep здесь нужен не для задержки, а для переключения треда. Задержка здесь - побочный эффект. |