#MaxThreadsBuffer

Veranlasst einige oder alle Hotkeys, Tastendrücke zu puffern statt zu ignorieren, wenn ihr #MaxThreadsPerHotkey-Limit erreicht wurde.

#MaxThreadsBuffer Einstellung

Parameter

Einstellung

Wenn weggelassen, wird standardmäßig True verwendet. Andernfalls geben Sie einen der folgenden direkt geschriebenen Werte an:

True oder 1: Alle Hotkey-Subroutinen zwischen dieser und der nächsten #MaxThreadsBuffer False-Direktive werden die Tastendrücke ihrer Hotkeys puffern statt ignorieren, wenn ihr #MaxThreadsPerHotkey-Limit erreicht wurde.

False oder 0: Das Drücken eines Hotkeys wird ignoriert, wenn dieser Hotkey bereits seine maximale Anzahl an Threads ausführt (üblicherweise 1, kann aber mit #MaxThreadsPerHotkey geändert werden).

Bemerkungen

Wenn diese Direktive im Skript nicht angegeben ist, verhält sie sich so, als wäre sie auf False gesetzt.

Diese Direktive wird selten verwendet, weil diese Art der Pufferung in der Regel mehr schadet als nützt. Wenn Sie z.B. versehentlich einen Hotkey zweimal drücken, während diese Direktive eingeschaltet ist, würde die Subroutine des Hotkeys automatisch ein zweites Mal ausgeführt werden, wenn sein erster Thread weniger als 1 Sekunde zum Beenden benötigt (diese Art der Pufferung verfällt konzeptbedingt nach 1 Sekunde). Beachten Sie, dass AutoHotkey mehrere verschiedene Methoden hat, um Hotkeys zu puffern (z.B. Thread Interrupt und Critical). Da diese spezielle Methode Probleme verursachen kann, ist sie standardmäßig ausgeschaltet.

Der Hauptzweck dieser Direktive besteht darin, die Reaktionsfähigkeit der Autowiederholungsfunktion der Tastatur zu erhöhen. Wenn Sie z.B. einen Hotkey gedrückt halten, dessen #MaxThreadsPerHotkey-Limit auf 1 (Standardwert) gesetzt ist, werden alle eingehenden Tastendrücke während der Ausführung dieser Hotkey-Subroutine ignoriert. Folglich muss die Subroutine nach Beendigung auf den nächsten autowiederholten Tastendruck warten, was 50 ms oder länger dauern kann, weil sie zwischen den Tastendrücken des Autowiederholungszyklus gefangen ist. Diese 50 ms Verzögerung kann vermieden werden, indem diese Direktive für alle Hotkeys aktiviert wird, die während der Autowiederholung die bestmögliche Reaktionszeit benötigen.

Wie alle Direktiven sollte auch diese im Skript nicht wie eine Funktion platziert werden (z.B. ist es sinnlos, die Direktive in eine Subroutine zu setzen). Positionieren Sie diese Direktive stattdessen direkt vor dem ersten Hotkey, der von ihr beeinflusst werden soll.

#MaxThreadsBuffer kann wie alle anderen Direktiven nicht bedingt ausgeführt werden.

#MaxThreads, #MaxThreadsPerHotkey, Critical, Thread (Funktion), Threads, Hotkey, A_MaxHotkeysPerInterval, ListHotkeys

Beispiele

Veranlasst die ersten zwei Hotkeys, Tastendrücke zu puffern statt zu ignorieren, wenn ihr #MaxThreadsPerHotkey-Limit erreicht wurde.

#MaxThreadsBuffer True
#x::MsgBox "Dieser Hotkey wird diese Art der Pufferung verwenden."
#y::MsgBox "Dieser Hotkey auch."
#MaxThreadsBuffer False
#z::MsgBox "Aber dieser nicht."