Bun venit pe SkullBox!

Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
  Pagini: [1]
  Imprimă  
WaitableTimer [Delphi]  (Vizualizari 260)
DarkByte
*

Deconectat Deconectat

Mesaje: 2441

WWW
WaitableTimer [Delphi], Mai 14, 2008, 11:58

O alternativa API la TTimer-ul din Delphi ar fi crearea unui Waitable Timer, care, cel putin aparent, are o rezolutie mai buna.

Un waitable timer blocheaza executia thread-ului in care e folosit pentru o durata specificata de timp.

Mai jos am pus un exemplu de folosire, in Delphi, a unui asemenea timer.

Cod:
procedure TForm1.WaitableTimer;
const sec = 10000000;
var wTimer, lBusy : Longint;
    interval : LARGE_INTEGER;
begin
  wTimer := CreateWaitableTimer(nil, True, PANSIChar('myWaitableTimer' + IntToStr(GetTickCount)));
  {e o idee buna sa-i dam un nume unic - dar poate avea si nume gol}

  interval.QuadPart :=  - sec * 3; {numarul de secunde}
                                   {valoare negativa = valoare relativa}
                                   {valoare pozitiva = valoare absoluta}

  Repeat
    SetWaitableTimer(wTimer, TLargeInteger(interval), 0, nil, nil, false);
    lBusy := WaitForSingleObject(wTimer, INFINITE);
    If lBusy = WAIT_OBJECT_0 Then
      Begin
        Do_Something; {aici se pune codul care se doreste executat la fiecare X secunde}
        {e o idee buna sa se puna aici si o conditie de terminare a buclei :) }
      End;
  Until False;

  CancelWaitableTimer(wTimer);

  CloseHandle(wTimer);
end;
Happy programming Smile
Memorat

Light travels faster than sound. This is why some people appear intelligent until they speak.

Quidquid latinum dictum sit, altum viditur.

SkullAds
Ecspert
ReclAmator
* * * * *
Google AdSense

Gen: Bărbat
Mesaje: Multe

Reclama AdSense,
 

 
   


Pagini: [1]
  Imprimă  
 
Schimbă forumul:  

Ethical hacking and programming community
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro