max. Prozessorlast vorgeben

TobiTo

Mitglied
Gibt es eine Möglichkeit in VB die max. Prozessorlast vorzugeben?

Ich habe eine Loop-Funktion, die diverse Textfelder refreshed (für Messdaten).

Das würde mir 10 mal pro Sekunde genügen. Das Programm läuft so weit, aber (natürlich) nimmt es sich was es kriegen kann an Prozessorpower. Für einen Notebookbetrieb ungünstig.

Kann mir jemand helfen?

Gruß Tobi
 
Um die Schleife zu bremsen kannst du am Start die Zeit abfragen, z.B. mit Timer, und etwas warten, also z.B. bei jedem Schleifenstart 100 Millisekunden Pause machen.
Und in eine Schleife sollte normal der Befehl DoEvents am Anfang oder Ende, der gibt Rechenzeit an andere Prozesse ab, ohne den würde eine lange oder endlose Schleife den Rechner schnell zum stehen bringen.

Für eine Schleife die Textfelder aktualisiert kannst du auch ein Timer-Control verwenden.
Enabled auf True, Intervall auf z.B. 100 (10 mal in der Sekunde) und im Timer-Ereignis des Controlls den Code rein.
 
Danke für Deine schnelle Antwort.
Mit DoEvents hatte ich auch, aber mir ging es um die eigentliche Prozessorlast.
Das mit dem Timer-Control werde ich mal probieren, hatte damit bisher gar nicht gearbeitet.

Gruß Tobi
 
Du kannst auch die Schleife warten lassen.
Code:
Sub Warten(Dauer)
    Dim Start
    Start = Timer
    Do While ((Start + Dauer) > Timer)
        DoEvents
    Loop
End Sub

Sub DeineSub
    Do While(deine Schleife)
        Textfelder aktualisieren
        Warten(0.5) ' In Sekunden angeben
    loop
End Sub
 
Zurück