#MaxThreadsBuffer

Bewirkt, dass einige oder alle Hotkeys Tastendrücke zwischenspeichern statt ignorieren, wenn ihr #MaxThreadsPerHotkey-Grenzwert erreicht ist.

#MaxThreadsBuffer On|Off

Parameter

On|Off

On: Alle Hotkey-Subroutinen zwischen dieser und der nächsten Direktive #MaxThreadsBuffer ON werden Tastendrücke ihrer Hotkeys zwischenspeichern statt ignorieren, wenn ihr #MaxThreadsPerHotkey-Grenzwert erreicht ist.

Off: Standardverhalten. Es wird der Tastendruck eines Hotkeys ignoriert, wenn dieser Hotkey bereits seine maximale Anzahl von Threads ausführt (üblicherweise 1, kann aber mit #MaxThreadsPerHotkey geändert werden).

Bemerkungen

Diese Direktive wird kaum genutzt, weil diese Art der Zwischenspeicherung (standardmäßig OFF) in der Regel mehr schadet als nützt. Wenn Sie z. B. versehentlich zweimal einen Hotkey drücken, während diese Direktive aktiviert ist, würde die Subroutine des Hotkeys automatisch das zweite Mal ausgeführt werden, wenn sein erster Thread weniger als 1 Sekunde zum Beenden benötigt (diese Art der Zwischenspeicherung wurde so konzipiert, dass sie nach einer Sekunde verfällt). Beachten Sie, dass AutoHotkey mehrere unterschiedliche Methoden hat, um Hotkeys zwischenzuspeichern (z. B. Thread Interrupt und Critical). Da diese spezielle Methode Probleme verursachen kann, ist sie standardmäßig ausgeschaltet.

Der Hauptnutzen dieser Direktive ist es, die Reaktionsfähigkeit des Auto-Wiederholungs-Features der Tastatur zu erhöhen. Wenn Sie beispielsweise einen Hotkey gedrückt halten, dessen #MaxThreadsPerHotkey-Grenzwert auf 1 (Standardwert) gesetzt ist, werden alle eingehenden Tastendrücke ignoriert, wenn diese Hotkey-Subroutine bereits ausgeführt wird. Sobald die Subroutine endet, muss sie folglich auf den nächsten eingehenden auto-wiederholten Tastendruck warten. Dieser Tastendruck kann eventuell 50 ms oder länger dauern, weil er zwischen den Tasteneingaben des Auto-Wiederholungs-Zyklus gefangen ist. Um diese Verzögerung von 50 ms zu vermeiden, aktiviert man diese Direktive für jeden Hotkey, der die bestmögliche Reaktionszeit benötigt, während er auto-wiederholt wird.

Diese Direktive sollte wie alle anderen Direktiven nicht positioniert werden, als wäre sie ein Befehl (beispielsweise ist es sinnlos, die Direktive in eine Subroutine zu setzen). Positionieren Sie diese Direktive stattdessen direkt vor dem ersten Hotkey-Label, der von ihr beeinflusst werden soll.

Siehe auch

#MaxThreads, #MaxThreadsPerHotkey, Critical, Thread (Befehl), Threads, Hotkey, #MaxHotkeysPerInterval, #HotkeyInterval, ListHotkeys

Beispiel

#MaxThreadsBuffer on
#x::MsgBox, Dieser Hotkey wird diese Art der Zwischenspeicherung verwenden.
#y::MsgBox, Dieser Hotkey auch.
#MaxThreadsBuffer off
#z::MsgBox, Aber dieser nicht.