Frage von hunter10000, 98

Wie kann man eine while(true) schleife langsamer machen?

Antwort
von J0h4ann3s, 37

In vielen Programmiersprachen gibt es einen delay() befehl den einfach in die letzte zeile der schleife schreiben und in die Klammern die anzahl von sekunden (in Tausendstel) die am ende (bis zur nächsten wiederholung) gewartet werden soll.

Antwort
von Orsovai, 49

Im namespace System.Threading findest Du die Möglichkeit einen Thread zu pausieren.

Vielleicht hilft Dir das?

Antwort
von Suboptimierer, 45

Du könntest eine leere, innere Schleife einbauen. for(int i=0;i<10000;i++){}

Das Problem dabei ist allerdings, dass diese Verzögerung auf unterschiedlichen Rechnern unterschiedlich lang ausfällt. Besser ist es, einen Sleep-Befehl, Wait-Befehl oder setTimeout-Befehl zu finden.

Kommentar von k3ltis ,

Schönes Antipattern.

Kommentar von Suboptimierer ,

Joa, aber sehr verbreitet. Jedes Windowsprogramm läuft in einer Endlosschleife und bei sehr vielen Programmen passiert etwas in regelmäßigen Zeitabständen, was bedeutet, dass eine künstliche Verzögerung geschaffen werden musste.

Kommentar von PWolff ,

Irgendwann ist ein kluger Kopf auf die Idee gekommen, für genau diese Zwecke Threads pausierbar zu machen.

Kommentar von Suboptimierer ,

Ja sicher. Der Trick ist, mehrere Endlosschleifen parallel laufen zu lassen.

Kommentar von oelbart ,

Ich würde wetten, dass die meisten modernen Compiler so etwas wegoptimieren...

Kommentar von Suboptimierer ,

Du meinst, dass die Leeranweisung erkannt wird? Dann müsste man Pseudoanweisungen verwenden (a=a) Der Compiler müsste schon mächtig intelligent programmiert sein, um alle Formen von Dummybefehle optimieren zu können.

Antwort
von ByteJunkey, 62

Inwiefern? Und um welche Sprache handelt es sich überhaupt?

Kommentar von hunter10000 ,

C#

Kommentar von ByteJunkey ,

Bleibt nur noch die Frage, warum man in einer performanten Sprache eine Schleife verlangsamen soll. Das hat zumindest nichts mit gutem Codestil zu tun

Antwort
von Odorwyn, 58

Du könntest den Thread schlafen legen für ein paar sekunden um sie "langsamer" zu machen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten