Thread

現在のスレッドの割り込み優先度を設定する

Thread, Priority,n
Thread, Interrupt, Duration [, LineCount]
Thread, NoTimers [, false]

Thread, Priority,n

nに現在のスレッドの割り込み優先度を指定する。
これより優先度の低いイベントは割り込むことができなくなる。

Thread, Interrupt, Duration [, LineCount]

スレッド開始から割り込みを絶対禁止する時間を設定する。
指定ミリ秒経過するか、指定行数(コマンド数)実行するまで、優先度にかかわらず割り込みは行われない。
Durationにミリ秒、LineCountに行数を設定する。
デフォルトは15ミリ秒、1000行。

どちらかを「0」にすると、始まったばかりのスレッドでも割り込まれるようになる。
どちらかを「-1」にすると、割り込みは絶対に行われなくなる。

この設定は、スクリプト全体で有効。
ただし、一度割り込み禁止期間を過ぎたスレッドを再度割り込み禁止にすることは出来ない。

割り込み禁止期間の間に他のスレッドが起動しようとしたとき、そのスレッドはバッファされ、実行中のスレッドが終了するか、割り込み禁止期間を過ぎた時点で実行される。
ただし、割り込み禁止期間を過ぎた時点で実行中のスレッドが割り込もうとしたスレッドより優先度が高い場合、割り込みは行われず、スレッドは消滅する。

Thread, NoTimers [, false]

現在のスレッドの実行中の間、タイマーイベントの割り込みを禁止する。

AutoExecuteセクションがタイマー割り込み禁止状態のまま終了した場合、そのスクリプトでは全てのスレッドがタイマー割り込み禁止で開始されるようになる。
この場合でも、スレッドが実行されていない間ならタイマーイベントの開始は可能。

第2引数に「false」や「0」などを指定すれば、現在のスレッドのタイマー割り込み禁止を解除できる。

Related

Threads, Hotkey, Menu, SetTimer

Example(s)

Thread, priority, 1 ; Make priority of current thread slightly above average.
Thread, interrupt, 50, 2000
; Make each newly launched thread immediately interruptible:
Thread, interrupt, 0