Вниз
Скачать: CL | DM;

Разница реакций Windows 98 и Windows X на Sleep и Delay   Найти похожие ветки 

← →
Mefodiy   (2004-04-03 19:59) [0]

Привожу кусок кода, который в Windows 98 выполняется нормально, а в Windows XP - раз в 10 медленнее.

 for i := 1 to 72 do
 begin
   with MyBitmap.Canvas do
   begin
     FillRect(ClipRect);
     Font.Size := i;
     TextOut((MyBitmap.Width - TextWidth(s)) div 2,(MyBitmap.Height - TextHeight(s)) div 2,s);
   end;
   BitBlt(PaintBox1.Canvas.Handle,116,140,MyBitmap.Width,MyBitmap.Height,MyBitmap.Canvas.Handle,0,0,SRCCOPY);
   Sleep(delay_time);
 end;

     В чем тут дело ?


← →
Defunct ©   (2004-04-03 20:14) [1]

Sleep никогда не будет работать правильно. Синхронизация ОС идет от системного таймера у которого частота 18.2 Гц. Т.е. минимальной задержкой является ~50 мс. Используйте TTimer вместо Sleep.


← →
Soft ©   (2004-04-03 22:10) [2]

Defunct ©   (03.04.04 20:14) [1]

В Windows 2000 минимальный квант времени 10ms, так как это система "мягкого" реального времени. Но все зваисит от приоритета задачи, если прооритет довольно низок, то он может пропустить и несколько десятков квантов времени, которые будут отданы более приоритетным задачам.

Синхронизация ОС идет от системного таймера у которого частота 18.2 Гц.

Не идет... Виндовз это значение меняет, поэтому многие досовские программы, использующие этот таймер для синхронизации работают некорректно.


← →
Игорь Шевченко ©   (2004-04-03 22:47) [3]


> Синхронизация ОС идет от системного таймера у которого частота
> 18.2 Гц


"Длина временного интервала таймера зависит от аппаратной платнофм и определяется HAL. Например, этот интервал для большинства однопроцессорных х86-систем составляет 10 мс, а на большинстве многопроцессорных х86-систем - 15мс"

(с) Соломон, Руссинович: "Внутреннее устройство Windows 2000"


> Привожу кусок кода, который в Windows 98 выполняется нормально,
> а в Windows XP - раз в 10 медленнее.


Чем определяется медленность ? Чему равно delay_time ?


← →
Mefodiy   (2004-04-04 15:36) [4]

Приведенный код предназначен для создания эффекта "выплывающего текста" (с увеличением его размера).
     Даже, если задаю delay_time:=1, то в Windows XP текс выплывает еле-еле, а в Windows 98 - почти моментально. Если задаю delay_time:=20 или 30 , то в Windows 98 смотрится нормально, в Windows XP - надо сидеть и ждать.
     Для информации: комп с Windows 98 - имеет процессор 933 МГц, а с Windows XP - 2,4 ГГц. В том и другом случае выполняется только одна эта программа.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1080470722
Shopot
2004-03-28 14:45
2004.04.18
VCL.


1-1080392550
Yuri Btr
2004-03-27 16:02
2004.04.18
Отрисовка background в строке List View


4-1076658166
Chery
2004-02-13 10:42
2004.04.18
Как переименовать папку?


14-1080293347
Igor_thief
2004-03-26 12:29
2004.04.18
ShowModal


14-1080350278
default
2004-03-27 04:17
2004.04.18
лит-ра




   Наверх