Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как усыпить поток. [D7, WinXP]


Страницы:   1 2 3 4 5

Kolan ©   (2006-02-06 21:50:00) 

Здравствуйте,
 Много раз слышал при обсуждении работы с потоками
"если то-то то поток засыпает, если еще что-то то просыпается..."

А как это. Можно пример усыпления.
Я просто проверяю какое-нибудь условие и если потоку делать нечего делаю например Sleep(1). А иначе загрузка процессора на 97% - 99%


Digitman   (2006-02-07 13:13:00) [81]


> Наверно потому что


> ... автодвигателя


Нет, вовсе не поэтому.


Digitman   (2006-02-07 13:09:00) [82]

Если потоку нечего делать, лучшее чем он может заняться в это время - "спать".

"Пустая" циклическая же проверка же флага (если имеется ввиду флаг как результат user-time-вычисления некоего условия) ничем не оправдана.


Kolan   (2006-02-07 13:09:00) [83]

Вряд ли такая затея чем-то оправдана
Наверно потому что...
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1138784983&n=5
Digitman ©   (01.02.06 12:41) [3]
Ведь создание и старт трэда сродни пуску холодного автодвигателя !

Да?

Я просто попробовать такое сделать хотел...


Digitman   (2006-02-07 13:05:00) [84]


> В случае если прошло какое-то время и флаг всевремя был
> равен False( Те поток бездействовал), поток засыпал бы


Вряд ли такая затея чем-то оправдана


Kolan   (2006-02-07 12:59:00) [85]

Интересует вот что: Допустим поток будет выполнять работу если какой-то флаг = True.

В случае если прошло какое-то время и флаг всевремя был равен False( Те поток бездействовал), поток засыпал бы....


evvcom   (2006-02-07 11:36:00) [86]


> Я димал мож есть функция какая.

Д умал? Есть, но не функция, а метод, если речь идет о TThread. См. [3]


Gero   (2006-02-07 00:01:00) [87]

> Kolan ©   (06.02.06 23:54)

Suspend, Resume


Kolan   (2006-02-06 23:54:00) [88]

Понятно.
Я димал мож есть функция какая. Что-то вроде Thread.Sleepи Thread.Awake...


Eraser   (2006-02-06 22:41:00) [89]


> Kolan ©   (06.02.06 21:50)

чаще всего под "усыплением" потока подразумевают ожидание в этом потоке какого-либо объекта синхронизации, какай-либо ф-ей, предназначеной для этого, например WaitForSingleObject или EnterCriticalSection.
Sleep это всё таки немного иное...


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо