Hi,
ich weiß ja das sich ein Skript in einer ständigen loop befindet um das Beenden des Skripts zu verhindern, aber ist oben genanntes normal -> ist mir heute zum ersten mal aufgefallen, obwohl ich jeden Tag mit AutoIT arbeite
GUIOnEventMode verursacht CPU Last 25% -> Bug?
-
- [ offen ]
-
Trolleule1337 -
13. Oktober 2014 um 02:02 -
Erledigt
-
-
Sofern du das sleep in der leeren while schleife nicht vergessen hast.
Das kann ich so nicht bestätigen. Hab maximal mal zwischendurch 10%, aber sonst konstant bei ca. 5% wenn man nicht hunderte an prozessen auf hat.
-
- Offizieller Beitrag
Die CPU-Last kommt auf jeden Fall von dem vergessenen Sleep.
[autoit]
Wobei man eigentlich auch ohne die While-Schleife auskommt:
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>
Opt('GUIOnEventMode', 1)$hGui = GUICreate('Test', 400, 300)
[/autoit][autoit][/autoit][autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
GUISetState()
WinWaitClose($hGui)
ExitFunc _CloseGui()
[/autoit]
GUIDelete($hGui)
EndFuncWinWaitClose reicht auch und läßt die CPU-Last ebenfalls unten.
-
Ach sorry, ich bin immer so vergesslich...
So sieht meine Schleife aus:
[autoit]Do
[/autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSEWenn ich mich richtig informiert habe, sollte eigentlich bereits das GUIGetMsg() für einen break sorgen, nicht?
-
Was denn nun jetzt - GuiOnEventMode oder Message-Loop-Modus?
Beides gleichzeitig geht nicht.
Wenn der EventMode an ist hat ein GuiGetMsg() in deinem Skript nichts mehr zu suchen.
Belies dich in der Hilfe mal zu den GUI-Konzepten.