1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

Тема в разделе "Другие", создана пользователем Rjkz, 8 апр 2008.

  1. Rjkz

    Rjkz Гость

    Репутация:
    0
    Написал програмку
    Код:
     
    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 , я так понемаю это всё дело в планировщике задач который чаще и надолще отдаёт на приложения квант времени ,,подскажите как программно это можно делать самому,,чтоб на определёную программу задавать и квант времени передовался ей на больше времени и чаще ?
     
  2. European

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Для влияния на количество выделяемых квантов используется механизм изменения приоритетов потоков
     
  3. Rjkz

    Rjkz Гость

    Репутация:
    0
    European в WindowsME изменения приоритетов потоков нет,,,а в ХР не как не повлеяло и значение перемеменной (Int) так и остовалось на значении 65 :)
     
  4. Pasha

    Pasha Гость

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

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Вы ошибаетесь
     
Загрузка...

Поделиться этой страницей