![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 375
|
![]()
Добрый день!
Делаю задержку в цикле for ... ... Sleep(10); ... и при этом программа полностью не отвечает пока цикл не пройдет. Как быть? |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Поставь в цикл Application.ProcessMessages но Sleep не нужен тогда.
I'm learning to live...
|
![]() |
![]() |
#3 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Еще можно реализовать через таймер с интервалом 10.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
#4 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Может лучше написать поток?
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 12.10.2007
Сообщений: 32
|
![]()
Ессно, Sleep приостанавливает текущий поток. Советую сделать поток. И синхронизировать его, нпаример с помощью мьютекса, проверяя в цикле. И делать Sleep(500) максимум.
Si vis pacem, para bellum!
|
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
Что значит не отвечает? Программа выполняет только те действия, которые Вы заложили в алгоритме программы.
Если Вы задали в цикле просто вычисления, то программа выполняет эти вычисления не показывая сам процес и Вы, естественно, вынуждены ждать окончания процесса вычисления. Оператор Sleep() здесь ни при чем. Как пример - 1- й вариант. Код:
Код:
Во втором - процесс перемещения будет скачкообразным, а сам у процедуру цикла мы вынуждены просто выждать. Время выполнения всей операции перемещения прямоугольника в обоих случаях практически одинаково Сам оператор Sleep() просто изменяет ( увеличивает) время выполнения цикла.Применение Sleep() оправдано в циклах с графикой (для плавности изображения) или в контролируемом цикле, когда каждый шаг цикла (иттерации) выводится на экран для возможности визуального наблюдения (контроля).
И не сомневайся даже ... отдых - кайф, работа - лажа!
Последний раз редактировалось DeKot; 10.09.2009 в 16:25. |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 375
|
![]()
Всем спасибо за ценные советы.
|
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с Sleep! | k1r1ch | Общие вопросы Delphi | 11 | 20.06.2009 19:12 |
Аналог Sleep() | Ants | Общие вопросы Delphi | 2 | 18.11.2008 13:11 |
Функция для Sleep | russian-stalker | Общие вопросы Delphi | 5 | 12.09.2008 16:40 |
Альтернатива sleep | Zuzlan | Общие вопросы Delphi | 2 | 01.11.2007 01:44 |
одна функция потока, а другая функция - член класса запускающего этот поток | Дмитрий_Ч | Общие вопросы C/C++ | 2 | 27.09.2007 08:50 |