![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Tthread и внутренний цикл
antonn © (2007-11-13 16:22:00)развейте мои сомнения:)
Создаю обычный Tthread, в Execute у него очень напряжный цикл while..do.
Процессор при расчете пытается загрузиться на полную катушку. Если я вставлю в тело цикла sleep(1) - приостановится поток tthread или главный поток программы?
antonn (2007-11-13 16:50:00) [41]
> ЗЫ
> А попробовать слабо было?
что попробывать? цикл перестал жрать процессорное время почем зря, и чего, я потому и спросил, правильно ли будет использовать слиип для отторможения тхреда? :) сомнения у меня :)
ну, насколько я понял, sleep(1) можно использовать для заморозки:) Спасибо:)
а еще вопрос, я сделал
TMooThread = class(TThread)
private
Finterval:LongInt;
protected
public
procedure SetInterval(const Value: cardinal);
end;
правильно ли это вызвать SetInterval() у этого TMooThread, а то я с этими Synchronize() уже запутался %) Т.е. ничего, что я вызываю функцию напрямую?.. (не смейтесь:))
Palladin (2007-11-13 16:29:00) [42]
> Kolan © (13.11.07 16:27) [4]
да это я вопрос не правильно воспринял
как: "приостановится ли поток VCL приложения" :)
невнимательно прочитал
Palladin (2007-11-13 16:28:00) [43]по мимо всего прочего можно выставить и приоритет потока
Kolan (2007-11-13 16:27:00) [44]
> приостановится поток tthread или главный поток программы
нет конечно
в точку :)
Palladin (2007-11-13 16:27:00) [45]если sleep не в методе, который в Synchronize исполняется :)
Kolan (2007-11-13 16:27:00) [46]> приостановится поток tthread
Sleep усыпит тот поток, в котором вызывается, то есть в твоем случае дочерний.
ЗЫ
А попробовать слабо было?
Palladin (2007-11-13 16:26:00) [47]нет конечно