![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как усыпить поток. [D7, WinXP]
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 это всё таки немного иное...