task

사용되지 않는 항목 표시

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

태스크 라이브러리 는 엔진의 스케줄러로 함수와 스레드를 예약할 수 있습니다.

이 라이브러리에 있는 함수는 일반적으로 함수와 스레드를 지원합니다.대부분의 경우 함수를 사용하면 충분하지만, 더 고급한 경우에는 coroutine 라이브러리를 익히는 것이 좋습니다.

요약

함수

  • spawn(functionOrThread : function | coroutine,... : Variant):coroutine

    엔진의 스케줄러를 통해 함수/코루틴을 즉시 호출/재개합니다.

  • defer(functionOrThread : function | coroutine,... : Variant):coroutine

    현재 재개 주기가 끝날 때 함수/코루틴을 호출하거나 재개합니다.

  • delay(duration : number,functionOrThread : function | coroutine,... : Variant):coroutine

    지정된 기간(초)이 지나면 제한 없이 다음 하트비트에서 호출/재개될 함수/코루틴을 일정하게 예약합니다. Schedule a function/coroutine to be called/resumed on the next Heartbeat after the given duration (in seconds) has passed, without throttling.

  • 다음 코드가 병렬로 실행되도록 합니다.

  • 다음 코드가 직렬로 실행되도록 합니다.

  • wait(duration : number):number

    제한 없이 현재 스레드를 생성합니다.

  • cancel(thread : coroutine):()

    스레드를 취소하여 재개되지 않도록 합니다.

함수

함수나 스레드(coroutine.create())를 수락하고 엔진의 스케줄러를 통해 즉시 호출/재개합니다.처음 이후의 인수는 함수/스레드에 전송됩니다.

호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, 생성된 함수나 스레드가 현재 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우, 생성된 함수나 스레드가 현재 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.

매개 변수

functionOrThread: function | coroutine

coroutine.create()에서 반환된 함수나 스레드.

...: Variant

함수나 스레드에 전송할 인수.

반환

예약된 스레드.

함수나 스레드(coroutine.create())를 수락하고 현재 프레임 내의 현재 재개 지점까지 지연시킵니다.

이 함수는 스레드가 즉시 실행할 필요가 없지만 비슷한 동작을 task.spawn() 원할 때 사용해야 합니다.

호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, 지연된 함수나 스레드가 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우 지연된 함수나 스레드가 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.

매개 변수

functionOrThread: function | coroutine

coroutine.create에서 반환된 함수 또는 스레드.

...: Variant

함수나 스레드에 전송할 인수.

반환

예약된 스레드.

함수나 스레드(에서 반환됨)를 수락하고 지정된 시간 후 다음 에서 호출되거나 재개되도록 일정을 예약합니다.두 번째 이후의 인수는 함수/스레드에 전송됩니다.

이 함수는 사용되지 않는 전역 함수와 달리 다음과 같은 점에서 차이가 납니다. 지연이 발생하지 않습니다 : 충분한 시간이 지난 동일한 단계에서 함수가 호출되거나 재개되도록 보장됩니다.0의 기간( 0 )을 제공하면 함수가 다음 Heartbeat 에서 호출되도록 보장합니다.

예약 및 예약된 함수에서 os.clock()를 호출하여 실제 시간을 계산할 수 있습니다.

호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우 지연된 함수나 스레드가 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우 지연된 함수나 스레드가 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.

매개 변수

duration: number

함수/스레드가 호출되거나 재개되기 전에 지나야 하는 최소 초 수입니다.

functionOrThread: function | coroutine
...: Variant

호출되거나 재개되어야 할 때 함수/스레드에 전달될 인수.

반환

예약된 스레드.

desynchronize

()

호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, desynchronize() 스크립트를 일시 중지하고 스크립트는 다음 병렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우, desynchronize()는 즉시 반환되며 효과가 없습니다.

하위 요소인 Actor 의 스크립트만 이 메서드를 호출할 수 있습니다.스크립트가 외부의 에서 Actor 이 메서드를 호출하면 오류가 발생합니다. 모듈을 호출하는 스크립트가 후손인 스크립트에 의해 필요로 하는 한, 모듈의 인스턴스화도 요청할 수 있습니다.

자세한 내용은 평행 Luau를 참조하십시오.

반환

()

synchronize

()

호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우, synchronize() 스크립트를 일시 중지하고 스크립트는 다음 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우, synchronize()는 즉시 반환되며 효과가 없습니다.

하위 요소인 Actor 의 스크립트만 이 메서드를 호출할 수 있습니다.스크립트가 외부의 에서 Actor 이 메서드를 호출하면 오류가 발생합니다. 모듈을 호출하는 스크립트가 후손인 스크립트에 의해 필요로 하는 한, 모듈의 인스턴스화도 요청할 수 있습니다.

자세한 내용은 평행 Luau를 참조하십시오.

반환

()

wait

지정된 기간(초)이 지나면 현재 스레드를 중단하고 다음 Heartbeat 단계에서 스레드를 재시작합니다.실제 경과 시간이 반환됩니다.

기간이 지정되지 않으면 기본값으로 0(0)이 됩니다.즉, 스레드는 행동에서 Class.RunService.Heartbeat:Wait()와 동일한 다음 단계에서 재개됩니다.

사용되지 않는 전역 와는 달리, 이 함수 는 속도를 줄이지 않고 지연되지 않으며, 필요할 때 발생하는 첫 번째 하트비트에서 스레드의 재시작을 보장합니다.이 함수는 또한 경과 시간만 반환하고 다른 것은 반환하지 않습니다.

호출 스크립트가 현재 직렬 실행 단계에서 실행 중인 경우 스크립트는 직렬 실행 단계에서 재개됩니다.호출 스크립트가 현재 병렬 실행 단계에서 실행 중인 경우 스크립트가 병렬 실행 단계에서 재개됩니다.자세한 내용은 평행 Luau를 참조하십시오.

매개 변수

duration: number

현재 스레드가 재개되기 전에 지나야 할 시간(초) 수입니다.

기본값: 0

반환

cancel

()

스레드를 취소하고 닫아서 엔진의 스케줄러나 수동으로 재개되지 않도록 합니다.

이 함수는 중단되기 전에 취소하기 위해 스레드를 반환하는 작업 라이브러리의 다른 멤버와 함께 사용할 수 있습니다. 예를 들어:


local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)

스레드가 취소할 수 없는 상태에 있을 수 있음을 알아두십시오.예를 들어, 현재 실행 중인 스레드와 다른 코루틴을 재개한 스레드는 취소할 수 없습니다.이 경우 오류가 생성됩니다.그러나 코드는 task.cancel()미래의 업데이트가 이러한 제약을 제거하고 이러한 상태의 스레드를 성공적으로 취소할 수 있도록 허용할 가능성이 있습니다.

매개 변수

thread: coroutine

취소될 스레드.

반환

()