ProcessMessages()



  • was verbirgt sich eigentlich hinter
    ProcessMessages() ?

    Meine Frage gehört vieleicht nicht so ganz in dieses Forum, denn ich suche eigentlich einen equivalenten Befehl für Visual Basic und hoffe, dass ich eine Antwort bekomme, die mich weiter bringt.

    MfG JB



  • Was ist dir denn an der Beschreibung in der Hilfe unklar?



  • Hi,

    ich versuch mal:

    Jede Anwendung hat ein Haupthread, der solange ausgeführt wird, wie die Anwendung existiert. Man kann sich das wie eine Endlosschleife vorstellen.

    Wenn du eine Methode/Funktion hast, die längere Zeit gebraucht, wird diese Schleife unterbrochen. An diesem Thread werden nun aber weiterhin von Windows ständig Nachrichten geschickt. Wie zum Beispiel Nachrichten, dass ein Formular neu gezeichnet werden muss, ein Button geclickt wurde usw.. Wenn der Thread nun durch deine Funktion unterbrochen wird, sammeln sich die Nachrichten vor dem Thread. Erst wenn deine Funktion beendet wurde und der Thread zu Nachrichtenverarbeitung zurückgelangt werden diese „aufgestauten“ Nachrichten verarbeitet.

    Um diese Verzögerung zu vermeiden, gibt es die Methode ProcessMessages, welche dafür sorgt, das im Thread die angestauten Nachrichten weiterverarbeitet werden.



  • Jansen schrieb:

    Was ist dir denn an der Beschreibung in der Hilfe unklar?

    oder so... 😉



  • in ProcessMessages()
    sind, glaube ich, 3 Windows-API-Befehle gekapselt.
    (für: empfange Meassages, verarbeite Meassages und noch irgendwas)

    - ich weiß nur nicht mehr welche, da ich seit einiger Zeit nichts mehr für Windows programmiert habe.



  • so ähnlich

    TMsg Msg;
      if (PeekMessage(Msg, 0, 0, 0, PM_REMOVE)&& Msg.Message != WM_QUIT) // Nachricht holen
    {
    
            TranslateMessage(Msg);// Nachricht formatieren
            DispatchMessage(Msg); // Nachricht verarbeiten
    }
    


  • das ises! 😃

    Danke!!! 🙂 👍


Anmelden zum Antworten