[ che_hess @ 17.12.2006. 14:33 ] @
|
Upravo radim na (jednostavnoj) simulaciji jednostavnog procesora sa sekvencijalnim izvršavanjem procesa (dakle, kad jedan završi, drugi zauzima procesor). Red čekanja je ostvaren pomoću reda(queue).
No, ono što mene zapravo zanima je da li postoji u C++ neki način da "puziram" program na recimo 1ms ili neko drugo određeno vrijeme. Znam za system("pause"), no on pauzira program tako dugo dok korisnik ne pritisne neku tipku, a ja ga želim pauzirat na 1ms, te da se nakon toga sam nastavi izvodit.
Ako, ne postoji neka funkcija za to, kako bi se to moglo realizirati.
P.S. 1ms sam uzeo kao najmanje vrijeme trajanja pojedinog procesa. (maksimalno je 1000ms).
Unaprijed hvala. |
[ kiklop74 @ 17.12.2006. 15:40 ] @
[ DjoleReject @ 18.12.2006. 02:27 ] @
Ali program koji radi na widowsu i koristi takve procesore ne moze garantovati preciznost od 1 ms.
[ savkic @ 18.12.2006. 08:10 ] @
> No, ono što mene zapravo zanima je da li postoji u C++ neki način da "puziram"
> program na recimo 1ms ili neko drugo određeno vrijeme. Znam za
Sleep i pauze funkcije ne garantuju preciznost, najbolje je da napraviš sam svoju. Jednostavno se vrtiš u petlji dok ne istekne traženo vreme. Za protok vremena možeš koristiti performance countere na windowsu, QueryPerformanceCounter i QueryPerformanceFrequency. Druga verovatno i bolja varijanta je da koristiš procesorov brojač ciklusa, RDTSC, dostupan je na svim Intel i Intel kompatibilnim procesorima (AMD).
[ monte_sandman @ 19.12.2006. 20:03 ] @
Ako koristis BCB onda mozes upotrijebiti Timer-sku komponentu.Ako sam te dobro razumio oko zahtjeva.
[ che_hess @ 21.12.2006. 01:02 ] @
hvala svima! uspio sam riješiti problem.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.