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