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