Beste GoTters,
Ik ben een beginner met Delphi, maar ik ben op een probleem gestuit die geen help kon oplossen.
Ik heb een stukje code, dat elke keer iets moet checken. Dit moet ie in totaal 1 miljard keer gaan doen. En daar zul je misschien al denken, *ai*.
Iig, ik kan er niet omheen, en dat is ook de essentie van het programma.
Ik heb het eerst met een for loopje geprobeerd. Dat werkt idd perfect. Er kleeft alleen een groot probleem aan. Tijdens de loop laat ik een paar labels veranderen en zo, maar dat doet ie niet. Dat komt omdat het programma 100% van mijn cpu verlangt, en is dus constant op 100%. Het enigste wat wel werkt is een progressbar. Met Taakbeheer van Win kun je dan zien dat het programma niet meer reageert, maar hij is wel degelijk bezig.
Het komt er op neer, dat ik niets in die loop kan laten doen, omdat de loop 100% van de cpu verlangt.
Toen d8 ik, misschien wil het met een timer wel werken. En idd, werkt super. Alleen nu een groot nadeel. De interval van de timer kan max. op 1 ms worden ingesteld. Bedenk dat er dan dus 1 miljard ms nodig zijn, om de taak te voltooien. En ik heb niet echt zin om 277 uur te gaan w8ten... Het voordeel is wel, dat al mijn andere taken uitgevoerd worden.
Nu is mijn vraag, hoe ik dus een loop kan maken, die je eventueel kan onderbreken, en die niet 100% van de cpu verlangt, zodat er ook nog in die loop bepaalde dingen gedaan kunnen worden als captions veranderen e.d.
Ik ben een beginner met Delphi, maar ik ben op een probleem gestuit die geen help kon oplossen.
Ik heb een stukje code, dat elke keer iets moet checken. Dit moet ie in totaal 1 miljard keer gaan doen. En daar zul je misschien al denken, *ai*.
Iig, ik kan er niet omheen, en dat is ook de essentie van het programma.
Ik heb het eerst met een for loopje geprobeerd. Dat werkt idd perfect. Er kleeft alleen een groot probleem aan. Tijdens de loop laat ik een paar labels veranderen en zo, maar dat doet ie niet. Dat komt omdat het programma 100% van mijn cpu verlangt, en is dus constant op 100%. Het enigste wat wel werkt is een progressbar. Met Taakbeheer van Win kun je dan zien dat het programma niet meer reageert, maar hij is wel degelijk bezig.
Het komt er op neer, dat ik niets in die loop kan laten doen, omdat de loop 100% van de cpu verlangt.
Toen d8 ik, misschien wil het met een timer wel werken. En idd, werkt super. Alleen nu een groot nadeel. De interval van de timer kan max. op 1 ms worden ingesteld. Bedenk dat er dan dus 1 miljard ms nodig zijn, om de taak te voltooien. En ik heb niet echt zin om 277 uur te gaan w8ten... Het voordeel is wel, dat al mijn andere taken uitgevoerd worden.
Nu is mijn vraag, hoe ik dus een loop kan maken, die je eventueel kan onderbreken, en die niet 100% van de cpu verlangt, zodat er ook nog in die loop bepaalde dingen gedaan kunnen worden als captions veranderen e.d.