[VB] Systeem traag na timer in programma

Pagina: 1
Acties:

  • Thunk
  • Registratie: Maart 2002
  • Laatst online: 11-07 21:16
Hey, ik heb in mn programma een timer zitten, die verschillende dingen uit een database haalt (sql)... hij staat op 500... kan echt niet hoger ofzo...

maar als t prog aanstaat (wat de bedoeling is dat die hele tijd aan blijft staan) dan heb ik in counter-strike telkens lag... dan stottert ie een klein beetje.. zet ik t programma uit dan is er niks aan de hand...

hoe kan ik dit oplossen? ik heb wel een timer nodig denk ik (weet ik bijna zeker) maar hij moet wel in de achtergrond blijven werken zonder dat iemand er last van heeft :(

enige ideeen?

edit: zijn er nog andere timer mogelijkheden? bepaalde dingen moeten echt snel gerefreshed worden (bijv labels) en andere dingen kan weer iets langzamer... maar ik heb alles in 1 timer gezet, met interval 500... want met 2 timers werd ie HELEMAAL sloom...)

Verwijderd

Je timer is niet het probleem, denk ik.
Wat wil je allemaal met die SQL doen en weet je zeker dat je elke halve seconde iets in de database wil doen???

Edit> Als je elke halve seconde iets wil doen in een database, dan merk je dat in je performance, want zoiets kost nu eenmaal gewoon wat processortijd...

  • Aerox.2000
  • Registratie: Februari 2001
  • Laatst online: 13-05 08:57

Verwijderd

Deze krijgt van mij de nominatie voor het vaagste P&W topic van het jaar.


• Wat voor een "timer prog"?
• "Hij staat op 500" -> 500 wat?
• Kan het niet eerder dat niet de timer, maar het proces dat je getimed start ("iets in SQL") traag is?

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 23:25

Delphi32

Heading for the gates of Eden

Op dinsdag 09 juli 2002 17:17 schreef 0px het volgende:
edit: zijn er nog andere timer mogelijkheden? bepaalde dingen moeten echt snel gerefreshed worden (bijv labels) en andere dingen kan weer iets langzamer... maar ik heb alles in 1 timer gezet, met interval 500... want met 2 timers werd ie HELEMAAL sloom...)
Waarom zou je een timer willen hebben die labels refresht, terwijl jij zit te CSen??

Als het een soortement van server-achtig iets is, ben ik bang dat je maar 2 opties hebt:
1. de timer een thread laten maken op low-prio (kan dat in VB?)
2. niet meer CSen als jouw machine server speelt >:)

Verwijderd

Op dinsdag 09 juli 2002 23:41 schreef Delphi32 het volgende:

[..]

Waarom zou je een timer willen hebben die labels refresht, terwijl jij zit te CSen??

Als het een soortement van server-achtig iets is, ben ik bang dat je maar 2 opties hebt:
1. de timer een thread laten maken op low-prio (kan dat in VB?)
Als je Windows NT hebt kun je je process gewoon op low-prio zetten.

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 23:25

Delphi32

Heading for the gates of Eden

Op dinsdag 09 juli 2002 23:50 schreef dev het volgende:
Als je Windows NT hebt kun je je process gewoon op low-prio zetten.
Ach, je hebt natuurlijk helemaal gelijk, was ik ff vergeten :)
Dan nog ben ik benieuwd of je met VB threads kan maken, maar dat terzijde. Mijn nieuwsgierigheid zal de topicstarter niet verder helpen :)

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 19:44

Gerco

Professional Newbie

Op woensdag 10 juli 2002 00:45 schreef Delphi32 het volgende:
Dan nog ben ik benieuwd of je met VB threads kan maken, maar dat terzijde.
Het KAN wel (gewoon CreateThread() aanroepen), maar de VB Runtime is NIET thread-safe. Dus je kan rekenen op een aantal rampen als je het probeert. Toch schijnen sommigen het netjes en redelijk veilig gedaan te hebben.

Maar VB zelf heeft er dus geen ondersteuning voor, behalve bij een ActiveX .EXE, dan creert VB meerdere threads geheel transparant. Je kunt due niet ZELF een thread maken.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Thunk
  • Registratie: Maart 2002
  • Laatst online: 11-07 21:16
Ten eerste dank voor al de replies..

Ik ben van plan toch nog de standaard VB timer te gaan gebruiken. In die timer haal ik diverse waarden uit een database, wat waarschijnlijk de bottleneck vormt. Het gaat er om dat deze waarden telkens in een string worden gezet, omdat ze in het programma verandert kunnen worden. Als ik het programma minimalizeer naar de systray, dan zet ik gewoon alles in een string, en zet ik de timer gewoon uit. Want je kan dan toch niks meer veranderen. Als ie weer naar voren wordt geklikt, zet ik de timer gewoon weer aan :) ... niet eerder aan gedacht, ga het nu implenteren... denk dat het zo zou moeten werken zonder dat het systeem traag wordt van die SQL queries.
Pagina: 1