Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 09:50   #1
Des
Форумчанин
 
Регистрация: 12.11.2008
Сообщений: 124
По умолчанию Как остановить поток а потом снова запустить?

Здравствуйте!
Как остановить поток правельно (либо поставить на паузу если такое возможно) а через скажем 1-2 сек опять запустить?

вот пример о чем я имею в виду
Ctrl+F и ищем
Код:
for i:=0 to 100 do
вот в этом участке кода собственно как остановить поток без потери данных и без использования синхронизации?

Спасибо !
Des вне форума Ответить с цитированием
Старый 03.05.2009, 09:55   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Я так понял, надо в цикле останавливать поток на 1-2 секунды.
Просто допишите в конце кода цикла:
Код:
Sleep(2000); //Приостанавливает на 2 секунды
Приостановка потока:
Код:
thread.Suspend;
Возобновление работы:
Код:
thread.Resume;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 03.05.2009 в 10:06.
Neeter вне форума Ответить с цитированием
Старый 03.05.2009, 10:00   #3
Des
Форумчанин
 
Регистрация: 12.11.2008
Сообщений: 124
По умолчанию

Neeter
К сожалению время паузы не известно. вот в этом то и проблема, поток смешивается с остальными процедурами когда я на них переключаюсь а писать синхронизацией - это перелапачивать всю архитектуру программы (собственно которую я как всегда поленился обдумать прежде чем кодить^^)
Des вне форума Ответить с цитированием
Старый 03.05.2009, 10:11   #4
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

А... понятно. Ну хорошо.
Удачи в программировании)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 03.05.2009, 11:58   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

если приостановка потока используется для ускорения основной программы
то вместо приостановки можно понизить приоритет этого потока
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 03.05.2009, 12:35   #6
Des
Форумчанин
 
Регистрация: 12.11.2008
Сообщений: 124
По умолчанию

Спасибо. Паузить приходится для выполнения других действий.
Des вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как остановить процесс Volkogriz Общие вопросы Delphi 1 15.01.2009 10:40
Как остановить поток? Никки Win Api 3 06.12.2007 22:04
Как запустить приложение, дождаться его исполнения и только потом выполнять код? il76 Win Api 6 19.07.2007 14:00
как корректно остановить цикл. Alar Общие вопросы Delphi 0 29.10.2006 10:42