Pazi ovaj kod:
Private Sub Form_Load()
Do
DoEvents
Loop
End Sub
Ovaj obican kod ce zauzeti 99% sistemskih resursa(ali vi profesionalci to vec znate). Srecom pa imamo DoEvents. On omogucava da neki drugi program preuzme sebi resursa ako mu je potrebno(i sprechava tvoj program da zakuca). Testirao sam to na ovaj nacin: Pokrenuo sam prethodni kod 2 puta i resursi su se jednako raspodelili(50-50% - variranje 3-4%) na oba programa.
Da se vratim na temu. Ako napravim engine na ovom principu izgledace previse n00bovski zauzimajuci nepotrebno 99% res. Imam neke ideje i hocu da znam sta drugi misle o tome.
1. Multimedialni tajmer koji okida mnogo puta:
Timer koji okida prvo ce proveriti da li su sve messages na queue-u obradjene(GetQueueStatus = 0) a ako jesu onda pokrece code engina(koristeci SendMessage).
2. Multimedialni tajmer koji okida mnogo puta 2:
Timer koji okida mnogo puta ce da stavi message u queue od programa(PostMessage) pa ce program redom da ih izvrsava pokretajuci code od engina svaki put kad na to dodje red.
I u jedno i u drugom slucaju cu izbeci Do-Loop a mozda cak mi nece trebati ni DoEvents(a izbegavam i microsoftov glupi tajmer). Takodje ce igra i seckati ako korisnik nema dovoljno jak komp ali nece zakucati(barem u prvom slucaju). Ugavnom ce engine da cheka da se izvrse sve komande(matematika,iscrtavanje,...) pa ce tek onda ponovo krenuti.
Koji je bolji metod? Ili jos bolje ako znate jos neki nachin da pokrenem code a da ne njakam sistemske resurse?
P.S. Ovo je sve teorija, nisam nista od ovoga isprobao.