Erst einmal kann ich dazu sagen, dass was hier angesprochen wird ist lediglich der Punkt, dass bei Ausführung dieses Skriptes die Ausgabe wie folgt ist:Cash hat geschrieben:...Code: Alles auswählen
integer lInt = 1; system.MaxIterations(1); while(lInt < 100000000) { WriteLine(lInt); lInt = lInt + 1; } WriteLine("Ende");
Code: Alles auswählen
1
2
Ende
Zusätzlich (und das ist viel wichtiger) muss man dazu sagen, dass dies in seiner aktuellen Form 0% der Skripte betrifft und ohnehin die Nutzung von "system.MaxIterations()" in einem Skript im besten Falle nicht vorkommen sollte. Es sollte damit nur ermöglicht werden die maximale Grenze von Iterationen einstellbar (und abfragbar) zu machen (für den Fall das man mehr als 500k Iterationen braucht). Diese neue Funktion darf nicht dazu genutzt werden nun z.B. immer vor einer while/foreach schleife MaxIterations() zu setzen um z.B. eine Zählvariable als Abbruchkriterium zu vermeiden. MaxIterations() wirkt sich nämlich global aus. D.h. es setzt für die gesamte Abarbeitung von Skripten innerhalb der ReGa die maximale Iterationsanzahl hoch.
Wer "system.MaxIterations(1)" ausführt darf sich ehrlich gesagt nicht darüber wundern, dass dann so einiges auf der CCU/RaspberryMatic nicht mehr geht. Weil das bedeutet das sämtliche Schleifen in sämtlichen (auch internen) ReGa-Skripten dann auch nach einer Iteration hart abgebrochen werden. Genau deshalb rate ich von einer generellen Verwendung von system.MaxIterations() zum setzen der Grenze auch in Nutzerskripten ab und wenn, dann nur um die Grenze über die Standardgröße hoch- und nicht darunter zu setzen. Und eben vor allem nicht um damit eben vor einer while()/foreach() schleife gar zu bestimmen das diese maximal X Iterationen durchlaufen soll.Cash hat geschrieben:Danach viel Spass mit eurer WebUI und Ausführungen auf der CCU.