태스크 라이브러리 는 엔진의 스케줄러로 함수와 스레드를 예약할 수 있습니다.
이 라이브러리에 있는 함수는 일반적으로 함수와 스레드를 지원합니다.대부분의 경우 함수를 사용하면 충분하지만, 더 고급한 경우에는 coroutine 라이브러리를 익히는 것이 좋습니다.
요약
함수
엔진의 스케줄러를 통해 함수/코루틴을 즉시 호출/재개합니다.
현재 재개 주기가 끝날 때 함수/코루틴을 호출하거나 재개합니다.
지정된 기간(초)이 지나면 제한 없이 다음 하트비트에서 호출/재개될 함수/코루틴을 일정하게 예약합니다. Schedule a function/coroutine to be called/resumed on the next Heartbeat after the given duration (in seconds) has passed, without throttling.
다음 코드가 병렬로 실행되도록 합니다.
다음 코드가 직렬로 실행되도록 합니다.
제한 없이 현재 스레드를 생성합니다.
스레드를 취소하여 재개되지 않도록 합니다.
함수
spawn
함수나 스레드(coroutine.create())를 수락하고 엔진의 스케줄러를 통해 즉시 호출/재개합니다.처음 이후의 인수는 함수/스레드에 전송됩니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, 생성된 함수나 스레드가 현재 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우, 생성된 함수나 스레드가 현재 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.
매개 변수
coroutine.create()에서 반환된 함수나 스레드.
함수나 스레드에 전송할 인수.
반환
예약된 스레드.
defer
함수나 스레드(coroutine.create())를 수락하고 현재 프레임 내의 현재 재개 지점까지 지연시킵니다.
이 함수는 스레드가 즉시 실행할 필요가 없지만 비슷한 동작을 task.spawn() 원할 때 사용해야 합니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, 지연된 함수나 스레드가 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우 지연된 함수나 스레드가 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.
매개 변수
반환
예약된 스레드.
delay
함수나 스레드(에서 반환됨)를 수락하고 지정된 시간 후 다음 에서 호출되거나 재개되도록 일정을 예약합니다.두 번째 이후의 인수는 함수/스레드에 전송됩니다.
이 함수는 사용되지 않는 전역 함수와 달리 다음과 같은 점에서 차이가 납니다. 지연이 발생하지 않습니다 : 충분한 시간이 지난 동일한 단계에서 함수가 호출되거나 재개되도록 보장됩니다.0의 기간( 0 )을 제공하면 함수가 다음 Heartbeat 에서 호출되도록 보장합니다.
예약 및 예약된 함수에서 os.clock()를 호출하여 실제 시간을 계산할 수 있습니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우 지연된 함수나 스레드가 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우 지연된 함수나 스레드가 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.
매개 변수
반환
예약된 스레드.
desynchronize
호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, desynchronize() 스크립트를 일시 중지하고 스크립트는 다음 병렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우, desynchronize()는 즉시 반환되며 효과가 없습니다.
하위 요소인 Actor 의 스크립트만 이 메서드를 호출할 수 있습니다.스크립트가 외부의 에서 Actor 이 메서드를 호출하면 오류가 발생합니다. 모듈을 호출하는 스크립트가 후손인 스크립트에 의해 필요로 하는 한, 모듈의 인스턴스화도 요청할 수 있습니다.
자세한 내용은 평행 Luau를 참조하십시오.
반환
synchronize
호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우, synchronize() 스크립트를 일시 중지하고 스크립트는 다음 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, synchronize()는 즉시 반환되며 효과가 없습니다.
하위 요소인 Actor 의 스크립트만 이 메서드를 호출할 수 있습니다.스크립트가 외부의 에서 Actor 이 메서드를 호출하면 오류가 발생합니다. 모듈을 호출하는 스크립트가 후손인 스크립트에 의해 필요로 하는 한, 모듈의 인스턴스화도 요청할 수 있습니다.
자세한 내용은 평행 Luau를 참조하십시오.
반환
wait
지정된 기간(초)이 지나면 현재 스레드를 중단하고 다음 Heartbeat 단계에서 스레드를 재시작합니다.실제 경과 시간이 반환됩니다.
기간이 지정되지 않으면 기본값으로 0(0)이 됩니다.즉, 스레드는 행동에서 Class.RunService.Heartbeat:Wait()와 동일한 다음 단계에서 재개됩니다.
사용되지 않는 전역 와는 달리, 이 함수 는 속도를 줄이지 않고 지연되지 않으며, 필요할 때 발생하는 첫 번째 하트비트에서 스레드의 재시작을 보장합니다.이 함수는 또한 경과 시간만 반환하고 다른 것은 반환하지 않습니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우 스크립트는 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우 스크립트가 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.
매개 변수
현재 스레드가 재개되기 전에 지나야 할 시간(초) 수입니다.
반환
cancel
스레드를 취소하고 닫아서 엔진의 스케줄러나 수동으로 재개되지 않도록 합니다.
이 함수는 중단되기 전에 취소하기 위해 스레드를 반환하는 작업 라이브러리의 다른 멤버와 함께 사용할 수 있습니다. 예를 들어:
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
스레드가 취소할 수 없는 상태에 있을 수 있음을 알아두십시오.예를 들어, 현재 실행 중인 스레드와 다른 코루틴을 재개한 스레드는 취소할 수 없습니다.이 경우 오류가 생성됩니다.그러나 코드는 task.cancel()미래의 업데이트가 이러한 제약을 제거하고 이러한 상태의 스레드를 성공적으로 취소할 수 있도록 허용할 가능성이 있습니다.
매개 변수
취소될 스레드.