일정 코드

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

일정 시간 동안 코드 실행을 보장하거나 특정 작업 또는 사이클이 완료된 후 코드 실행을 지정하거나 코드를 지연하는 등의 경우 일정 코드 예약 코드가 유용합니다. task 라이브러리를 사용하여 Roblox의 작업

일반 메서드

다음은 코드 예약 메서드입니다. task . 메서드는 전역 스케쥴링 메서드, 예를 들어 wait() 를 사용하여 코드를 최적으로 실행하도록 해야 합니다.

다음 표에서는 유사한 전통 글로벌 메서드와 그들의 선호 적이고 더 최적화된 대안을 나열합니다.

| 전역 메서드 | 작업 메서드 | 추가 대체 메서드 | | :-------------------------------- | : | | wait(n)

작업.spawn

task.spawn()은 스레드 또는 함수를 사용하고 엔진의 스케줄러를 통해 즉시 재시작 합니다. 추가 인수는 스레드 또는 함수에 전달됩니다.

다음 코드 샘플은 반복 개체 집합을 처리하는 함수를 호출할 때 task.spawn()를 사용하는 방법을 보여줍니다.


local function playerAdded(player)
...
(yield)
end
for _, player in Players:GetPlayers() do
task.spawn(playerAdded, player)
end

작업 지연

task.defer()는 스레드 또는 함수를 가져와 엔진의 스케줄러와 함께 다음 중단 사이클에 대해 다시 시작할 때까지 지연시킵니다. 추가 인수는 스레드 또는 함수 지연에 전달됩니다.

이 메서드는 일반적으로 다음과 같은 동작을 원할 때 사용해야 합니다. task.spawn() 에 대해 즉시 실행되지 않는 스레드에 대해 스레드 실행을 위한 print() 문을 사용하는 것이 좋습니다. 다음 코드 샘플


task.defer(print, "A")
print("B")
--> B
--> A

작업 지연

task.delay() 는 스레드 또는 함수를 사용하고 지정된 시간 내에 다시 시작하는 예정된 시간 단위의 다음 Heartbeat 단계에 대해 일정을 예약합니다. 스레드는 내장 오류 처리 및 다른 엔진 기능을 지원하는 구성 요

실제 지연 시간이 다를 수 있기 때문에 다음 코드 샘플에서는 현재 시간을 인수로 전달하여 계산할 수 있는 방법을 보여줍니다.


task.delay(2, function(scheduledTime)
print(os.clock() - scheduledTime) --> 2.038702
end, os.clock())

0의 지속 시간은 다음 단계에서 스레드나 함수를 재개하게 합니다.

작업 대기

task.wait() 는 지정된 기간(초)이 지나면 현재 스레드를 종료하고 다음 Heartbeat 단계에서 스레드를 재개합니다.

실제 생성 시간은 다를 수 있습니다. 다음 코드 샘플은 편의를 위해 이 메서드가 어떻게 반환되는지 보여줍니다.

실제 지연 시간이 다를 수 있기 때문에 다음 코드 샘플에서는 메서드 반환 값을 저장하여 실제 시간을 확인할 수 있습니다.


local elapsedTime = task.wait(2) -- 2초 동안 기다리십시오
print(elapsedTime) --> 2.0792941

만료 시간이 지정되지 않으면 만료 시간은 기본적으로 0으로 지정되어 스레드가 다음 단계에서 자동으로 재개됩니다. 즉, task.wait()는 동작에서 RunService.Heartbeat와 동일합니다.