kann man Sleep abbrechen? wenn ja, wie?
danke für eure Hilfe!
kann man Sleep abbrechen? wenn ja, wie?
danke für eure Hilfe!
Hallo NSBM,
ZitatAuszug aus dt. Hilfe Sleep
--------------------------------------------------------------------------------Pausiert die Skript Ausführung.
Sleep ( delay )
also nein, denn nach der Pause wenn der Sleep zu Ende ist braucht man es nicht mehr (hat ja eh schon ausgeschlafen).
mfg (Auto)Bert
ok. danke
Hi ... aber du kannst dir selber eine kleine Sleep Func bauen, z.B. so:
[autoit]
Func _Sleep($time)
$slActive = 1
$timer = TimerInit()
Do
If $slActive = 0 Then Return
Until TimerDiff($timer) >= $time
EndFunc
Wenn du das Sleep abbrechen willst setzt du $slActive auf "0".
lG
Hallo Lenny,
du scheinst mächtig Resourcen zu haben, ich hab deine _Sleep in einer TestGui angewandt. Die Prozessorauslastung war bei ca. 55% .
Daraufhin habe ich einen Sleep(5) eingebaut, dies hat die Auslastung auf ca 25% gesenkt.
@NSBM $slActive solltest du global erstellen, da du ja an einer anderen Stelle im Skript darauf zugreifen willst / musst,
mfg (Auto)Bert
Hallo AutoBert.
Ja, das mit der Cpu-Auslastung habe ich mir schon gedacht. Ich hatte schon öfter mal Probleme mit der ständigen Abfrage von dem "timer".
Was vllt. noch ganz interessant ist, dass die minimum Sleep Time in AutoIt 10Ms beträgt
lG,
Lenny
Hallo Lenny,
in der Hilfe hab ich zu Minimum Sleep (bisher) noch nichts gefunden, wohl aber zu Maximum
ZitatBemerkungen
Die maximale Pausenzeit beträgt 2147483647 Millisekunden (24 Tage).
Der Unterschied zwischen 5 und 10 ms liegt absolut zwar bei 100%, aber im Verhalten des Programmes auf Tastendrücke konnte ich keinen fühlbaren Unterschied zwischen 5 und 125 ms feststellen, auch bei der Prozessorauslastung gibt es unter 25 ms keine großen Unterschiede,
mfg (Auto)Bert
doch es gibt ein Minnimum!
Ich glaube das war 100 aber weiß auch nicht mehr genau
Hallo Lenny,
Was vllt. noch ganz interessant ist, dass die minimum Sleep Time in AutoIt 10Ms beträgt
habs mal Spass halber ausgetestet:
$tdtStart = TimerInit()
for $i = 1 to 1000
Sleep(1)
Next
$tdtDiff = TimerDiff($tdtStart)
MsgBox(0,"1",int($tdtDiff / 1000) & " ms")
Da kommen bei mir zwar 11 ms raus, aber das der Sleep kein zuverlässiges Messinstrument ist dürfte allgemein bekannt sein,
Jam00 wenn du das gelesen hättest
Zitatauch bei der Prozessorauslastung gibt es unter 25 ms keine großen Unterschiede,
, wär dir klar gewesen dass es unter 25 ms sein müssen.
Edit: TestSkript aus Spoiler befreit
mfg (Auto)Bert
Ich sag ja ich weiß nicht mehr genau! Ich weiß nur noch das es ein minimum gab, dann ist es warscheinlich 10
Kann man doch ganz leicht ausprobieren:
[autoit]$stamp=TimerInit()
Sleep ( 10 )
MsgBox ( 0, "", TimerDiff( $stamp ) )
$stamp=TimerInit()
Sleep ( 5 )
MsgBox ( 0, "", TimerDiff( $stamp ) )
Unter 10 Kommt es bei mir nicht, also Sleep ( 10 ) ist Minimum.