vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: DoEvents und Prozessorauslasstung 
Autor: Tolwyn
Datum: 06.05.02 13:34

Hi,

DoEvent innerhalb einer Do ... Loop Schleife führt automatisch zu einer "angezeigten" CPU Auslastung von Gesamt 100 %. Angezeigt deshalb, weil der Prozessor eigentlich nichts tut als nichts zu verarbeiten. DoEvents übergibt die Ablaufsteuerung an das Betriebssystem. Will heißen Win schaut nach ob da irgend welche Events an das Form gesendet wurden(Normalerweise geschieht das nur außerhalb von Funktionen). Für gewöhnlich wird Win in der Schleife nun keine neuen Events finden, mit der schleife weitermachen und wieder ein DoEvents ausführen. Für jedes DoEvents nimmt sich Win dann natürlich 100 % der freien Rechenleistung.

Das ganze ist eigentlich nur ein "Schönheitsfehler", denn sobald ein weiterer Prozess was machen möchte bekommt er praktisch sofort ausreichend CPU Zeit. Es sieht halt nur blöde aus wenn eine Anwendung ständig den Prozessor beansprucht.

Als kleinen Workarround kann man ein sleep von einer MS einfügen um die Auslastung zu verhindern. Dann wird nur noch 1 DoEvents pro ms durchgeführt, und das hustet die CPU mit 0% Auslastung durch
  Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public sub test
  lCount = 1
  Do
    ' mit Sleep(1) Ok ohne 
    ' 100 % auslastung und das immer
    Call Sleep(1)
    DoEvents
    If lCount = 100 Then
      Debug.Print "Möööp!"
    End If
  Loop
end sub
Gruß
Tolwyn
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DoEvents und Prozessorauslasstung64Ronny42Dach06.05.02 12:19
Re: DoEvents und Prozessorauslasstung45Braindead06.05.02 12:28
Re: DoEvents und Prozessorauslasstung49Tolwyn06.05.02 13:34

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel