Announcement

Collapse
No announcement yet.

Lange Iterationen - Ohne ProcessMessages() und ohne Thread?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Lange Iterationen - Ohne ProcessMessages() und ohne Thread?

    Hallo,

    mal was grundsätzliches: Wie iteriert man durch eine Vielzahl an Einträgen (die obere Grenze steht erst zur Laufzeit fest), ohne ProcessMessages() bemühen zu müssen?<pre>
    for I := 1 to Count do begin
    // eigentlicher Code
    Application.ProcessMessages();
    end;</pre>

    Gibt es irgendwelche Richtwerte, bei welcher Größe von Count für Windows eine Anwendung nicht mehr antwortet. An eine Auslagerung in Threads habe ich bei der Lösung nicht gedacht. Ich möchte ja nicht für jeden Schleifencode, deren Anzahl an Durchläufen erst zur Laufzeit feststeht, einen eigenen Thread abspalten

    Stephan Schneider

  • #2
    Ich mache das dann oft so:<br><pre>
    for I := 1 to Count do begin
    // eigentlicher Code
    if (I mod 20) = 0 THEN Application.ProcessMessages();
    end;</pre><p>
    Also einfach nur bei jedem 20. Durchlauf oder irgend einem anderen Wert. Nicht optimal, aber für viele Fälle ausreichend.<p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Alternativ mit GetSysTime die Millisekunden messen und alle x Millisekunden ProcessMessages aufrufen. Alle 50 msec sollte ein benutzbares Useinterface geben

      Comment

      Working...
      X