Ik ben bezig met een systeem dat bestaat uit een hoofdapplicatie A die vervolgens 2 x een ander programma start (B en C ==> dit zijn exact dezelfde applicatie's).
Bij die 2 applicatie's (B en C) wordt in het begin een soort screensaver van allerlei foto's achter elkaar getoond. Deze foto's worden allemaal omgezet naar een resolutie van 640 x 240. (Het kan dus zijn dat er bijv foto's gebruikt worden die standaard de resolutie hebben van 1600x1200).Dit gebeurt via de Stretch property.
Iedere keer als de foto getoond moet worden, wordt deze van de hardeschijf geladen en dus omgezet naar de juiste resolutie. Dit gaat allemaal gewoon goed.
Vervolgens wordt de screensaver bij B gestopt en wordt er een animatie van +- 40 frames achter elkaar getoond. Bij applicatie C draait de screensaver dan dus gewoon nog verder.
Het vreemde is dat bijv halverwege de animatie het systeem het druk krijgt met het laden, resizen van een foto voor systeem C en dat de animatie niet goed wordt afgespeeld. Animatie staat even "stil" en het laatste stukje schiet dan vervolgens heel snel voorbij. De bedoeling is uiteraard dat de animatie altijd vloeiend verloopt.
Maar ik snap dat niet helemaal. Linux geeft toch iedere applicatie x aantal milliseconden de tijd. Dus dan is het toch niet zo dat B en C van elkaar last kunnen hebben.
Nu weet ik misschien wel een oplossing. Ik zou een array van Images kunnen aanmaken waarbij ik bij het opstarten van applicatie B en C die helemaal vul met de foto's. Vervolgens hoef ik dan om de zoveel seconden geen foto's meer te laden en te resizen, maar alleen de nieuwe op visibile zetten en de oude verbergen. Maar ik denk niet dat dit een ideale oplossing is, omdat dat dan alle foto's in het geheugen worden geladen en het kunnen aardig wat foto's zijn.
Een andere oplossing is misschien om de TAnimate in een aparte thread laten werken?
Kortom kan iemand mij hier wat uitleg over geven wat het beste is en waarom applicatie B en C van elkaar last hebben (want ik zou zeggen linux geeft iedere applicatie net zoveel tijd, want de main thread's van beide applicatie's hebben dezelfde prioriteit)?
Bij die 2 applicatie's (B en C) wordt in het begin een soort screensaver van allerlei foto's achter elkaar getoond. Deze foto's worden allemaal omgezet naar een resolutie van 640 x 240. (Het kan dus zijn dat er bijv foto's gebruikt worden die standaard de resolutie hebben van 1600x1200).Dit gebeurt via de Stretch property.
Iedere keer als de foto getoond moet worden, wordt deze van de hardeschijf geladen en dus omgezet naar de juiste resolutie. Dit gaat allemaal gewoon goed.
Vervolgens wordt de screensaver bij B gestopt en wordt er een animatie van +- 40 frames achter elkaar getoond. Bij applicatie C draait de screensaver dan dus gewoon nog verder.
Het vreemde is dat bijv halverwege de animatie het systeem het druk krijgt met het laden, resizen van een foto voor systeem C en dat de animatie niet goed wordt afgespeeld. Animatie staat even "stil" en het laatste stukje schiet dan vervolgens heel snel voorbij. De bedoeling is uiteraard dat de animatie altijd vloeiend verloopt.
Maar ik snap dat niet helemaal. Linux geeft toch iedere applicatie x aantal milliseconden de tijd. Dus dan is het toch niet zo dat B en C van elkaar last kunnen hebben.
Nu weet ik misschien wel een oplossing. Ik zou een array van Images kunnen aanmaken waarbij ik bij het opstarten van applicatie B en C die helemaal vul met de foto's. Vervolgens hoef ik dan om de zoveel seconden geen foto's meer te laden en te resizen, maar alleen de nieuwe op visibile zetten en de oude verbergen. Maar ik denk niet dat dit een ideale oplossing is, omdat dat dan alle foto's in het geheugen worden geladen en het kunnen aardig wat foto's zijn.
Een andere oplossing is misschien om de TAnimate in een aparte thread laten werken?
Kortom kan iemand mij hier wat uitleg over geven wat het beste is en waarom applicatie B en C van elkaar last hebben (want ik zou zeggen linux geeft iedere applicatie net zoveel tijd, want de main thread's van beide applicatie's hebben dezelfde prioriteit)?
[ Voor 4% gewijzigd door Verwijderd op 22-05-2003 21:11 ]