Posted By: gekon (Nezapomen na radost) on 'CZprogram'
Title:     Presne casovani pod Win II
Date:      Tue Apr 14 09:36:28 1998

   Ahoj,

   dosel mi dotaz ohledne casovani a protoze si myslim, ze by to mohlo 
zajimat vic lidi, tak to pisu sem.

Podle helpu k VC 5.0 by vsechno co napisu melo fungovat pod Win95 i WinNT, ale 
zkousel jsem to jen pod eNTyckama.

1. Zpresneni casovace az na 1 ms.

   To zaridi funkce timeBeginPeriod <mmsystem.h>. Jako parametr ma minimalni 
rozliseni casovace v ms. S parametrem 1 vam konecne budou preruseni chodit 
presne na ms a ne podle plotu. Az to nebudete chtit, pouzijte funkce 
timeEndPeriod <mmsystem.h>

   Pokud to ale potrebujete opravdu presne, doporucuju rozjet vlakno/proces 
na realtime priorite, ktere/y bude navesenej na preruseni od casovace a bude 
nastavovat nejakej synchronizacni objekt (semafor, mutex, udalost a ja nevim 
co jeste) pro dalsi vlakna/procesy.

   Mozna efektnejsi reseni pod NT (Win95 sorry) by bylo pouziti Waitable 
timers, ale o tom zatim moc nevim. (blizsi informace v knize Windows pro 
pokrocile a experty, kap. 9)

2. Cteni relativniho casu s presnosti az na mikrosekundy

   Funkci QueryPerformanceFrequency <winbase.h> si zjistite pocet tiku techto 
hodin za sekundu a funkci QueryPerformanceCount <winbase.h> si prectete 
aktualni pocet tiku.

   Snad to pomuze.


            Gekon                             /-----
                                             /  0 0  
------------------------------------------- |    '    | ------------------- 
Nedavno jsem objevil smysl zivota...          ===== /  And the show 
...ale zapomnel jsem si ho napsat             _____/   must go on

Search the boards