Скорость работы приложения!

  • Автор темы Rjkz
  • Дата начала
R

Rjkz

Гость
#1
Написал програмку
Код:
unit unitSpeed1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, MPlayer, StdCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
bm: TBitMap;
s: String;
Hour, Min, Sec, MSec: Word;
DMin,DSec	 : Word;
int,int2:integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
bm := TBitMap.Create;
bm.Width := 1024;
bm.Height :=1500;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
DecodeTime(Time, Hour, Min, Sec, MSec);

If Int=0 then
begin
DMin:=Min;
DSec:=Sec+1;
If DSec>=60 then DSec:=DSec-60;
Int:=1;
end;

int:=int+1;
s := TimeToStr(time);
bm.Canvas.TextOut(100,100, s);
bm.Canvas.TextOut(100,125,'								 ');
bm.Canvas.TextOut(100,125, inttostr(DMin)+'>>'+inttostr(DSec));
If(Sec=Dsec) then
begin
Bm.Canvas.Pen.Color:=Random(16777216);
bm.Canvas.TextOut(100,150,'								 ');
bm.Canvas.TextOut(100,150,inttostr(Int));

Bm.Canvas.Moveto(Int2,0);
Bm.Canvas.LineTo(Int2,Int);
Int2:=int2+1;
If Int2>Form1.Width-20 then begin Int2:=0; Bm.Canvas.Rectangle(-1,-1,700,800);end;
int:=0;
end;



Form1.Canvas.Draw(0, 0, bm);

end;


procedure TForm1.FormDestroy(Sender: TObject);
begin
bm.Destroy;
end;

end.
Почему в WindowsMe или Windows98 при движении мышкой по элементам имеющим всплывающие подсказки Hint по непонятным причинам начинает увиличиваться значение переменной (Int) обычно значение равно 20 но при шивилинии мышкой по элементам с Hint делать какой нить программой то может достигать и 1600, а в WindowsXP значение постоянно и равно 65 , я так понемаю это всё дело в планировщике задач который чаще и надолще отдаёт на приложения квант времени ,,подскажите как программно это можно делать самому,,чтоб на определёную программу задавать и квант времени передовался ей на больше времени и чаще ?
 
04.09.2006
2 566
2
Минск
#2
подскажите как программно это можно делать самому,,чтоб на определёную программу задавать и квант времени передовался ей на больше времени и чаще ?
Для влияния на количество выделяемых квантов используется механизм изменения приоритетов потоков
 
R

Rjkz

Гость
#3
European в WindowsME изменения приоритетов потоков нет,,,а в ХР не как не повлеяло и значение перемеменной (Int) так и остовалось на значении 65 :)
 
P

Pasha

Гость
#4
Rjkz
Судя по коду в первом сообщении, ты думаешь что вызов Timer1Timer - это и есть выделение приложению кванта времени? Вообще-то таймер срабатывает через равные промежутки времени - те самые 65 чего-то там, а планировщик задач не имеет к таймерам почти никакого отношения.