Sleep abbrechen

  • Hallo NSBM,

    Zitat

    Auszug 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

  • 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

    [/autoit]

    Wenn du das Sleep abbrechen willst setzt du $slActive auf "0".

    lG

    Jaja, Moo does the Cow!

  • 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

    Jaja, Moo does the Cow!

  • Hallo Lenny,

    in der Hilfe hab ich zu Minimum Sleep (bisher) noch nichts gefunden, wohl aber zu Maximum

    Zitat

    Bemerkungen

    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

  • Hallo Lenny,

    Was vllt. noch ganz interessant ist, dass die minimum Sleep Time in AutoIt 10Ms beträgt


    habs mal Spass halber ausgetestet:

    [autoit]

    $tdtStart = TimerInit()
    for $i = 1 to 1000
    Sleep(1)
    Next
    $tdtDiff = TimerDiff($tdtStart)
    MsgBox(0,"1",int($tdtDiff / 1000) & " ms")

    [/autoit]


    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

    Zitat

    auch 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

    Einmal editiert, zuletzt von AutoBert (9. Juni 2009 um 23:46)

  • Kann man doch ganz leicht ausprobieren:

    [autoit]

    $stamp=TimerInit()
    Sleep ( 10 )
    MsgBox ( 0, "", TimerDiff( $stamp ) )

    [/autoit][autoit][/autoit][autoit]

    $stamp=TimerInit()
    Sleep ( 5 )
    MsgBox ( 0, "", TimerDiff( $stamp ) )

    [/autoit]

    Unter 10 Kommt es bei mir nicht, also Sleep ( 10 ) ist Minimum.