vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 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

VB.NET - Fortgeschrittene
Re: DoEvents 
Autor: ModeratorDaveS (Moderator)
Datum: 11.02.04 21:03

Und jetzt mein Versuch das zu erjklären:

Um DoEvents() zu verstehen muss man zuerst eine Idee haben wie Windows GUI Anwendungen funktionieren.
Windows generiert dauernd Meldungen, Window Messages, z.B. wenn mit der Maus geklickt wird,
eine Taste gedrückt wird usw. Windows stellt fest zu welcher Anwendung die Meldung geschickt werden soll,
und speichert sie in einem Message Queue für die Anwendung. Eine GUI Annwendung sitzt meistens in eine Schleife,
die diese Messages aus dem Queue liest, zum richtigen Fenster der Anwendung schickt, und dort eine Windows Funktion
aufruft, die als Eventroutine für die Message definiert ist. Z.b. eine Button Click Routine(so in sehr ungefähr).

Wenn so eine Routine aufgerufen wird werden keine Messages mehr gelesen oder abgearbeitet
bis die Eventroutine zur Hauptschleife zurückkehrt. Das heisst, deine Anwendung reagiert nicht mehr
auf Befehle vom Benutzer, ein Zustand den wir alle Kennen wenn etwa ein Fenster leer bleibt nachdem
ein anderes Fenster weggezogen wurde, z.B.

Wenn man eine Routine hat die lange läuft, ist es dann ratsam ab und zu DoEvents() aufzurufen,
da DoEvents() wieder die anstehenden Messages liest, sie bearbeitet, und dann zurückkehrt zu der noch aktiven Eventroutine.

Dadurch bleibt die Anwendung aktiv. Man muss aber beachten, dass Eventroutinen dadurch eventuell
rekursiv aufgerufen werden können. Es ist übrigens nicht unbedingt notwendig DoEvents()aufzurufen wenn es nur darum geht ein Fenster
(etwa ProgressBar) neu zu zeichnen. Das geht einfach mit der Control.Refresh() Funktion, die das Fenster synchron neu zeichnet.

Dass andere Prozesse hängen gehört übrigens zur Win 3 Welt, aber nicht mehr unter Win32.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DoEvents853ThinkingBomb11.02.04 16:27
Application.DoEvents (oT)618WaldiMaywood11.02.04 16:36
Danke567ThinkingBomb11.02.04 16:50
Re: DoEvents781MikaDoProxx11.02.04 16:40
Re: DoEvents845waYne11.02.04 20:09
Re: DoEvents798WaldiMaywood11.02.04 20:28
(oT) 606ThinkingBomb12.02.04 08:22
Re: DoEvents1.071ModeratorDaveS11.02.04 21:03
Re: DoEvents592WaldiMaywood11.02.04 21:23
Re: DoEvents572waYne11.02.04 21:43
Re: DoEvents580WaldiMaywood11.02.04 22:54
(oT) 578ThinkingBomb12.02.04 08:22

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