작업 라이브러리에서는 작업 스케쥴러와 함수 및 스레드를 예약할 수 있습니다.The 작업 라이브러리 library allows for functions and threads to be scheduled with the Task Scheduler.
이 라이브러리에서 사용할 수 있는 함수는 일반적으로 함수 및 스레드를 지원합니다. 대부분의 경우 함수를 사용하면 충분하지만, 더 고급 경우는 coroutine 라이브러리를 숙련하게 사용하는 것이 좋습니다.
요약
함수
엔진 스케줄러를 통해 즉시 함수/루틴을 호출/재시작합니다.
현재 재시작 사이클의 끝에 함수/루틴을 호출/재시작합니다.Calls/resumes a function/coroutine at the end of the current resumption cycle.
지정된 지속 시간(초)이 지나면 즉시 호출/재시작할 함수/코루틴을 예약합니다.
다음 코드를 병렬로 실행하도록 합니다.
다음 코드를 직렬로 실행하도록 합니다.
지정된 지속 시간(초)이 지나간 다음의 하트 비트까지 현재 스레드를 생성하고, 제한되지 않고 작동합니다.Yields the current thread until the next Heartbeat in which the given duration (in seconds) has passed, without throttling.
스레드를 취소하여 재개되지 않도록 합니다.
함수
spawn
coroutine.create에서 반환하는 함수 또는 스레드를 수락하고 엔진의 스케줄러를 통해 즉시 호출/재시작합니다. 첫 번째 인수는 함수/스레드에 전송됩니다.
이 함수는 더 이상 사용되지 않는 전역 함수 spawn의 대체가 아닙니다. 이 함수는 더 이상 사용되지 않도록 권장합니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있다면, 생성된 함수 또는 스레드는 현재 직렬 실행 단계에서 재개됩니다. 호출 스크립트가 현재 병렬 실행 단계에서 실행되고 있다면, 생성된 함수 또는 스레드는 현재 병렬 실행 단계에서 재개됩니다. 자세한 내용은 �
매개 변수
반환
예약된 스레드.
defer
coroutine.create에서 반환하는 함수 또는 스레드를 수락하고 현재 중단 사이클의 끝까지 기다리면 엔진의 스케줄러와 같이 task.spawn() 에 재시작됩니다. 첫 번째 인수 후 첫 번째 인수 후 첫 번째 인수 후 첫 번째 인수 후 첫 번째 인수 후 첫 번째 인수 후 첫 번째 인
이 함수는 task.spawn()와 유사한 동작이 원하지만 즉시 실행할 필요가 없는 경우에 사용해야 합니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있다면, 지연된 함수 또는 스레드가 직렬 실행 단계에서 재개됩니다. 호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있다면, 지연된 함수 또는 스레드가 직렬 실행 단계에서 재개됩니다. 자세한 내용은 병렬 Luau를 참조
매개 변수
반환
예약된 스레드.
delay
coroutine.create에서 반환하는 함수 또는 스레드를 수락하고 지정된 시간(초)이 지난 후에 호출/재시작할 스레드를 예약합니다. 두 번째 인수는 함수/스레드에 전송됩니다.
이 함수는 지연되지 않는 전역 delay 함수와 동일한 하트 비트 단계에서 시간이 충분하게 지났음에 따라 이 함수가 호출되거나 중지됩니다. 기간을 0(0)으로 제공하면 함수가 다음 하트 비트에서 호출되도록 보장됩니다.
예약 및 예약된 함수에서 os.clock()를 호출하여 실제 시간을 계산할 수 있습니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있다면, 지연된 함수 또는 스레드는 직렬 실행 단계에서 재개됩니다. 호출 스크립트가 현재 병렬 실행 단계에서 실행되고 있다면, 지연된 함수 또는 스레드는 병렬 실행 단계에서 재개됩니다. 자세한 내용은 병렬 Luau를 참
매개 변수
반환
예약된 스레드.
desynchronize
호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있으면, desynchronize 스크립트를 중지하고 스크립트는 다음 병렬 실행 단계에서 재개됩니다. 호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있으면, desynchronize 즉시 반환되며 효과가 없습니다.
액터의 후손인 스크립트만 이 메서드를 호출할 수 있습니다. 액터 외부의 스크립트가 이 메서드를 호출하면 오류가 발생합니다. ModuleScript는 desynchronize를 호출하는 스크립트의 인스턴스를 기반으로 하는 모듈 스크립트를 호출할 수도 있습니다.
자세한 내용은 병렬 Luau를 참조하십시오.
반환
synchronize
호출 스크립트가 현재 병렬 실행 단계에서 실행되고 있으면, synchronize 스크립트를 중지하고 다음 병렬 실행 단계에서 스크립트를 재개합니다. 호출 스크립트가 현재 병렬 실행 단계에서 실행되고 있으면, synchronize 는 즉시 반환되고 효과가 없습니다.
액터의 하위인 스크립트만 이 메서드를 호출할 수 있습니다. 액터 외부의 스크립트가 이 메서드를 호출하면 오류가 발생합니다. ModuleScript는 또한 synchronize를 호출하여 모듈 스크립트를 즉시 호출하는 스크립트를 요청할 수 있습니다.
자세한 내용은 병렬 Luau를 참조하십시오.
반환
wait
지정된 지속 시간(초)이 지났으면 현재 스레드를 중지하고 다음 Heartbeat 단계로 스레드를 재개합니다. 실제 지속 시간이 반환됩니다.
기간을 지정하지 않으면 기본적으로 0(0)이 됩니다. 이렇게 하면 스레드가 다음 단계에서 재시작되며 동일한 행동을 수행합니다. 이는 행동에서 RunService.Heartbeat:Wait()와 동일합니다.
지원되는 전역 wait 이 아닌 경우, 이 함수 대기 하지 않으며 첫 번째 Heartbeat가 발생할 때 스레드를 다시 시작하는 것을 보장합니다. 이 함수는 시간을 다시 반환하지만 다른 아무 것도 반환하지 않습니다.
호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있다면, 스크립트는 직렬 실행 단계에서 재시작됩니다. 호출 스크립트가 현재 직렬 실행 단계에서 실행되고 있다면, 스크립트는 직렬 실행 단계에서 재시작됩니다. 자세한 내용은 병렬 Luau를 참조하십시오.
매개 변수
현재 스레드가 재개될 때까지 지속되는 시간(초).
반환
cancel
스레드를 취소하고 닫아서 수동으로 또는 작업 일정 관리자에 의해 재개되지 않습니다.
이 함수는 작업 라이브러리의 다른 멤버가 스레드를 취소하기 전에 멈출 수 있도록 하는 경우에 사용할 수 있습니다. 예를 들어:
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
참고: 스레드는 취소할 수 없는 상태일 수 있습니다. 예를 들어, 현재 실행 스레드와 다시 실행된 스레드는 취소할 수 없습니다. 이 경우 lua 오류가 생성됩니다.
그러나 코드는 task.cancel() 을 실행하는 특정 스레드 상태나 조건에 의존하지 말아야 합니다. 미래의 업데이트가 이러한 제약 조건을 제거하고 이 상태의 스레드를 성공적으로 취소할 수 있습니다.
매개 변수
취소할 스레드입니다.