MessageQueue Memory



  • Hallo Leute,

    wie schon in meinem anderen Thread hinsichtlich Memory -Leaks, habe ich ein neue Theorie, wieso mit der Speicher volllaufen kann.

    Was passiert wenn ein Thread mehr PostMessages abfeuert, als der UI Thread (durch lange GDI Mal Operationen langsam werden kann) verarbeiten kann.

    Ich könnte ja SendMessage verwenden, aber dann block mir gelegentlich die UI..hmm.. rubber-duck-talk. ich synchronisiere die thread trotzdem mit mutex, vll. sollte ich TryGetMutex in der UI verwendetn, so dass ich auch da keinen deadlock habe..

    Vermutlich habe ich kein Memory -leak, sondern die Message Queue wird allmählich so groß dass der Speicher voll is!?



  • @SoIntMan sagte in MessageQueue Memory:

    Hallo Leute,
    wie schon in meinem anderen Thread hinsichtlich Memory -Leaks, habe ich ein neue Theorie, wieso mit der Speicher volllaufen kann.
    Was passiert wenn ein Thread mehr PostMessages abfeuert, als der UI Thread (durch lange GDI Mal Operationen langsam werden kann) verarbeiten kann.

    Dann liefert PostMessage 0 und GetLastError() ERROR_NOT_ENOUGH_QUOTA zurück.

    Siehe auch Doku zu PostMessage.



  • @SoIntMan sagte in MessageQueue Memory:

    Vermutlich habe ich kein Memory -leak, sondern die Message Queue wird allmählich so groß dass der Speicher voll is!?

    Aus der Doku zu PostMessage

    There is a limit of 10,000 posted messages per message queue. This limit should be sufficiently large. If your application exceeds the limit, it should be redesigned to avoid consuming so many system resources. To adjust this limit, modify the following registry key.

    Da läuft also kein Speicher voll.



  • @Quiche-Lorraine sagte in MessageQueue Memory:

    Dann liefert PostMessage 0 und GetLastError() ERROR_NOT_ENOUGH_QUOTA zurück.
    Siehe auch Doku zu PostMessage.

    Ahhh.. ok das könnte ich noch abfangen.

    @Quiche-Lorraine sagte in MessageQueue Memory:

    Da läuft also kein Speicher voll.

    ja das habe ich dann auch gelesen. sorry für den voreiligen Post...


Log in to reply