[ PeraKojotSuperGenije @ 12.02.2005. 16:47 ] @
Da li je moguce, da procedura "ceka": -da se dese neki dogadjaji(npr. klik, pa zatim desni klik); -da neka promenjljiva dobije neku vrednost(npr. done-true)? |
[ PeraKojotSuperGenije @ 12.02.2005. 16:47 ] @
[ broker @ 12.02.2005. 19:52 ] @
Za to koristi Dogadjaje (Events). Kada se dasi nesto aktivira se odgovarajuci dogadjaj kojije u stvari procedura koju mozes i sam da napises. Pogledaj na komponentama sve onNesto metode. To su dogadjaji.
[ PeraKojotSuperGenije @ 12.02.2005. 21:32 ] @
Hvala, ali to mi, u ovoj situaciji, nikako ne moze pomoci. Resio sam pomocu timer-a. Malo je primitivno, ali odlicno radi!
[ goky2002 @ 12.02.2005. 23:58 ] @
Tajmeri nisu bas pozudani. Sta ces da rdis ako dodje do zagusenja i kasni sa reagovanjem
[ Nemanja Avramović @ 13.02.2005. 00:09 ] @
Thread?
Ja to nikad nisam koristio, ali kazu da je dobro :) [ vlaiv @ 13.02.2005. 00:20 ] @
Thread-ovi sasvim solidna stvar ....
Pogledaj SDK za WaitForSingleObject, WaitForMultipleObjects, CreateEvent, SetEvent ... Kao naravno i CriticalSections i ostale zgodne stvari ... Ako pojasnis problem moze se konkretnije odgovoriti ... [ ventura @ 13.02.2005. 02:02 ] @
Nisam programer, ali mogu ti dati jedan savet iz iskustva :)
Timere izbegavaj, umesto toga radi sa threadovima... Koliko mi je poznato Microsoft ne daje garancije da ce kod da ti radi kako treba na njihovim operativnim sistemima ukoliko imas vise od 8 tajmera... [ sasas @ 13.02.2005. 10:13 ] @
To za osam tajmera je legenda jos iz vremena windowsa 3.0 (kazu ljudi koji su radili :) Valjda je win 3.0 imao limit 16 komada, a neke od njih je koristio OS. Na windowsima 3.11 je limit navodno bio 32, na 95ici 32k, a na NTu neograniceno (odnosno ograniceno resursima).
Evo i exe u prilogu, ako je neko raspolozen da proveri te tvrdnje o beskonacnosti ;) Ja sam stigao do 800 komada, i radilo je ok. ss. [ bancika @ 13.02.2005. 11:47 ] @
nije problem broj, nego preciznost...jeste da ces ti da uhvatis promenu u roku od 50-ak milisekundi, ali opet...da pravis software za space-shuttle izbacili bi te iz nase
![]() [ ventura @ 13.02.2005. 12:19 ] @
Ne znam da li je legenda ili nije, ali znam konkretno da MS ne garantuje da ce kod ispravno funkcionisati na njihovim operativnim sistemima kada imas vise od 8 tajmera... To sam cuo od coveka iz MS-a koji nam je bio consultant, i ne verujem da bi nam to pricao bez veze...
Kod mozda moze da radi i sa 8000 tajmera... Ali to je MOZDA... Kad pises neki ozbiljnj kod onda ti mozda moze ne dolazi u obzir vec samo garantovano moze. [ morlic @ 13.02.2005. 13:45 ] @
Tajmeri se koriste tamo gde preciznost nije na prvom mestu, jer tajmeri imaju odredjenu latenciju zbog niskog prioriteta koji imaju. Pauza izmedju poziva jednog timer-a nece biti manja od sistemskog timeslice-a, sto je cini mi se izmedju 10-20 msec sto zavisi od operativnog sistema. Ako je potrebna veca preciznost mogu se koristiti i "multimedijalni tajmeri". Ima jos varijanti kao sto je koriscenje nanosec tajmera ugradjenog u jos od Pentium cipa u hardver, ali za to treba malo konsultacije sa MSDN-om. Kad bolje razmislim, u svakom slucaju treba konsultacije sa MSDN-om :)
Znaci nema sta da razvlacite pitu, ako treba delay u kojem nije bitno kasnjenje od ~100ms moze slobodno da se koristi TTimer. Za ozbiljne slucajeve treba ozbiljnije resenje. Windows nije realtime operativni sistem i zato MS ne moze da garantuje *NISTA* ali apsolutno *NISTA* sto se tice preciznosti, ma kako ona bila radjena. Zamislite da jedan Windows pokrece neki sklopove u okviru recimo mehanizma koji upravlja kretanjem satelita i da je u jednom trenutku windows odlucio da swapuje jedan deo nekog procesa u swap fajl i da se zbog toga desi neki delay koji nasem procesu moze da pravi zakasnjenje, sto se dalje manifestuje problemom u kretanju satelita. Malo karikiram ali shvatate sta zelim da kazem. Ko inisistira na relatime sistemu nek proba QNX (Unix). Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|