Форум: "Основная";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
Внизпоток Найти похожие ветки
← →
serg! (2004-05-17 10:08) [0]помогите, пожалуйста!
нужно использовать поток в программе. приоритет ставлю tpLower. но при запуске потока TaskManager показывает загрузку процессора 99%! так и должно быть? код вот такой:
procedure TMyThread.Execute;
begin
while not Terminated do
tt:=DateTimeToStr(Now);
end;
← →
Verg © (2004-05-17 10:16) [1]Да, при таком коде потока, так и должно быть.
← →
Erik © (2004-05-17 10:16) [2]А, что ты хотел сделать? Надо всегда думать, что будут делать твой код. Поставь Sleep(50); внутрь цикла.
← →
panov © (2004-05-17 10:18) [3]Так и должно быть.
Поток у тебя работает в цикле непрерывно, поэтому Task manager и показывает это тебе.
Поток создается для какой-то конкретной работы, а недля сомнительного циклаtt:=DateTimeToStr(Now);
А если изменишь свой код так, например -
while not Terminated do
begin
tt:=DateTimeToStr(Now);
Sleep(1);
end;
- 100%-ой загрузки не будет.
← →
Петров Денис © (2004-05-17 10:20) [4]> serg! (17.05.04 10:08)
Сам по себе приоритет выполнения потока вовсе не означает, что он не будет использовать 99% процентов процессорного времени.
Просто когда поток с более высоким приоритетом потребует от процессора "внимания", тот, в соответсвии с системой приоритетов, приостановит выполенние потока с более низким приоритетом и отдаст квант времени новому потоку.
Тем более, 98% загрузки процессора нормально при таком коде, как у тебя в примере.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c