Hohe CPU-Auslastung durch invalidate()

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    Hohe CPU-Auslastung durch invalidate()

    Hallo Community-User,

    Ich male meine Form (DoubleBuffered) die ganze Zeit neu, in einem seperaten Thread.
    Dies führt zu extremen CPU-Auslastungen.
    Sobald ich anfange zu invalidaten, steigt die CPU-Auslastung um extreme 55% (Dual Core, i5).
    Ist das normal bzw kann ich das irgendwie vermeiden oder wenigstens ein wenig cpufreundlicher machen?

    Danke für alle Tipps im Vorraus,
    Byte
    Hi
    Die CPU-Auslastung steigt natürlich an! Du zeichnest ja auch mindestens ClientSize.Width * ClientSize.Height Pixel, je nach Operation. Ob du an CPU-Auslastung sparen kannst kommt ganz auf deinen Fall an. Was zeichnest du denn? Bei Bildern, Flächen, etc. kann man einiges Einsparen, wenn es der richtige Fall ist. Außerdem wäre es sinnvoll, genauere Informationen über die invalidierten Gebiete zu geben (Sprich: Welche Bereiche erfordern denn die Neuzeichnung?)

    Gruß
    ~blaze~
    Also,

    Ich zeichne Polygone, die Größe der Graphics ist 800*500.
    Die Polygone werden mit fillPolygon(..) gefüllt.

    EDIT: Wenn ich Größe auf 100*100 ändere ist die CPU-Auslastung immer noch so hoch, darans liegt es also nicht...

    LG,
    Byte

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Byte“ ()

    Ändern die Polygone sich denn permanent ? Ansonsten wäre es sinnvoll sich den letzten Stand z.B. in einem Image zwischenzuspeichern , statt immer neu zu berechnen. Ansonsten gilt dass was ~blaze~ schon geschrieben hat: es kommt immer auf Deinen konkreten Fall an.