Thread

쓰레드의 우선 순위와 인터럽트 허용 여부를 설정합니다. 또 임시로 모든 타이머를 끌 수 있습니다.

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

Thread, NoTimers [, false]: 현재 쓰레드가 종료하거나, Thread, NoTimers, false를 실행하거나, 또는 타이머를 허용하는 또다른 쓰레드에 의하여 인터럽트될 때까지 다른 타이머의 인터럽트를 막습니다 (타이머를 허용하는 쓰레드라면 인터럽트한 쓰레드를 종료할 때까지 인터럽트 할 수 있습니다).

자동-실행 섹션 (스크립트의 상단)에서 Thread NoTimers가 사용되지 않았다면, 모든 쓰레드는 타이머가 인터럽트 할 수 있는 상태로 시작합니다 (물론 Thread Interrupt [아래]의 설정은 여전히 적용됩니다). 대조적으로, 자동-실행 섹션이 NoTimers 위에서 실행되지만 타이머는 끄지 않았다면, 새로 기동된 쓰레드마다 (예를 들어 핫키, 맞춤 메뉴 항목, 또는 타이머) 다른 타이머의 인터럽트에 면역 상태로 시작합니다.

기본 설정에 상관 없이, 스크립트에 쓰레드가 없다면 타이머는 언제나 작동합니다 (단, Pause가 켜진 경우는 예외입니다).

Thread, NoTimersThread, NoTimers, true와 동등합니다. 게다가, true/false 맥개변수는 표현식이므로, true는 1로, 그리고 false는 0으로 결정됩니다.


Thread, Priority, n: n에 -2147483648부터 2147483647 사이의 정수를 (또는 표현식 가능) 지정하면 현재 쓰레드의 새 우선 순위를 나타낼 수 있습니다. 다른 쓰레드에는 영향을 주지 않습니다. 자세한 정보는 쓰레드를 참조하십시오.

이벤트를 버퍼 처리할 수 있기 때문에, 명령어 Critical은 일반적으로 Thread Priority보다 우선 순위가 높습니다.

관련하여, OS의 우선 순위 레벨은 전체 스크립트에 대하여 다음 예제와 같이 바꿀 수 있습니다: Process, Priority,, High.


Thread, Interrupt [, Duration, LineCount]: 이 명령어는 아껴서 사용해야 합니다. 왜냐하면 대부분의 스크립트는 기본값에 가깝게 설정할 수록 더 일관성이 있게 수행되기 때문입니다.

기본값으로, 새로 기동된 쓰레드는 15밀리 초 동안(Duration) 또는 1000 스크립트 줄(LineCount) 동안 인터럽트 할 수 없습니다. 쓰레드 우선 순위에 상관이 없습니다. 이 덕분에 쓰레드는 끝낼 기회가 있습니다. 그렇지 않으면 기동되기를 기다리고 있는 또다른 쓰레드에 의하여 즉시 인터럽트 되어 버릴 것입니다 (예를 들어 버퍼 처리된 핫키 또는 실행이 예약되어 있는 일련의 타이머 서브루틴).

둘 중의 하나가 0이면, 새로 기동된 쓰레드마다 즉시 인터럽트가 가능합니다. 둘 중 하나가 -1이면, 그 때문에 그 쓰레드를 인터럽트할 수 없습니다. 둘 다 최대값은 2147483647입니다.

인터럽트 설정은 전역적입니다. 그 다음에 일어나는 모든 쓰레드는 그 설정을 준수합니다. 설정이 자동-실행 섹션이 아닌 다른 곳에서 바뀌더라도 마찬가지 입니다. 그렇지만, 인터럽트 된 쓰레드는 영향을 받지 않습니다. 왜냐하면 인터럽트 불가능 기한이 이미 경과했기 때문입니다. 비슷하게, 현재 쓰레드는 영향을 받지 않습니다. 단, LineCount가 바뀌는 순간 인터럽트 할 수 없다면 예외입니다. 이 경우 새 LineCount가 거기에 설정됩니다.

현재 쓰레드가 인터럽트 불가능한 동안에 핫키가 눌리거나 맞춤 메뉴 항목이 선택되면, 그 이벤트는 버퍼 처리됩니다. 다른 말로, 현재 쓰레드가 종료하거나 인터럽트가 가능해지면 기동됩니다. 이에 대한 예외는 현재 쓰레드가 끝나기 전에 인터럽트가 가능해질 때 입니다. 이 때는 버퍼 처리된 이벤트 보다 우선 순위가 더 높습니다; 이 경우 버퍼에 있는 이벤트는 페기됩니다.

이 설정에 상관 없이, 쓰레드는 MsgBox, InputBox, FileSelectFile, 또는 FileSelectFolder 대화상자를 보여주는 순간 인터럽트가 가능해집니다.

둘 중 어느 쪽이라도 비워 두면 바뀌는 것을 막을 수 있습니다.

논평

이벤트를 버퍼 처리하는 그의 놀라운 유연성과 능력 덕분에, 명령어 Critical은 보통 Thread InterruptThread Priority 보다 더 유용합니다.

관련 항목

Critical, Threads, Hotkey, Menu, SetTimer, Process

예제

Thread, priority, 1 ; 현재 쓰레드의 우선 순위를 보통보다 약간 더 높게 만듭니다.
Thread, interrupt, 0  ; 새로 기동된 쓰레드마다 즉시 인터럽트 가능하도록 만듭니다:
Thread, interrupt, 50, 2000  ; 우선 순위에 상관 없이 각 쓰레드를 50ms 또는 2000 줄 이후에 인터럽트 가능하도록 만듭니다.
선택 | 내려받기