task

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Biblioteka zadań zadania umożliwia zaplanowanie funkcji i wątków zgodnie z kalendarzem zadań.

Dostępne funkcje w tej bibliotece ogólnie wspierają funkcje i wątki. W większości przypadków używanie funkcji jest wystarczające, ale dla bardziej zaawansowanych przypadków zaleca się, aby się zapoznać z biblioteką coroutine.

Podsumowanie

Funkcje

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

    Wykonuje/zwraca funkcję/koroutine natychmiastowo poprzez rozkładacz silnika.

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

    Przywołuje/zakreszcza funkcję/rorzę na końcu obecnego cyklu podsumowania.

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

    Zapisuje funkcję/rutynę do zadania/zakresu czasowego następnego Heartbeatu po upływie danej długości (w sekundach).

  • Powoduje, że ten kod zostanie wykonany równolegle.

  • Powoduje, że następujący kod będzie wykonany w serwialu.

  • wait(duration : number):number

    Zwraca bieżący wątek, aż do następnego Heartbeat, w którym dana długość (w sekundach) przeszła, bez zacięcia.

  • cancel(thread : coroutine):()

    Anuluje wątek, zapobiegając jego wznowieniu.

Funkcje

Akceptuje funkcję lub wątek (jak zwraca coroutine.create) i wykonuje go natychmiastowo poprzez rozkładacz silnika. Argumenty po pierwszych są wysyłane do funkcji/wątku.

Ta funkcja opiera się na wzorcu fastSpawn, a nie jest to zastępstwo dla deprecji globalnej funkcji spawn. Zaleca się używanie tej funkcji w miejsce fastSpawn.

Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania serwialnego, to funkcja lub wątek postępuje w fazie wykonania serwialnego. Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania równoległej, to funkcja lub wątek postępuje w fazie wykonania równoległej. Dla więcej informacji, zobacz Luau równoległe .

Parametry

functionOrThread: function | coroutine

Funkcja lub wątek zwrócony przez coroutine.create.

...: Variant

Argumenty do wysłania do funkcji lub wątku.

Zwroty

Planowany wątek.

Przyjmuje funkcję lub wątek (jak zwraca coroutine.create) i opóźnia go do końca bieżącego cyklu podsumowania, w którym następuje ponowne uruchomienie z silnikiem zgodnie z task.spawn(). Argumenty po pierwszych są wysyłane na funkcję/wątek.

Ta funkcja powinna być używana, gdy pożądane jest podobne zachowanie do task.spawn() , ale wątek nie musi być natychmiastowo uruchomiony.

Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania serwowania, to funkcja lub wątek z dalej funkcji lub wątku zostanie zreszt funkcja lub wątek z dalej funkcji lub wątku z dalej funkcji lub wątku z dalej funkcji lub wątku z dalej funkcji lub wątku z dalej funkcji lub wątku z dalej funkcji lub wątku z dalej funkcji lub wątku z dalej funkcji lub wąt

Parametry

functionOrThread: function | coroutine

Funkcja lub wątek zwrócony przez coroutine.create.

...: Variant

Argumenty do wysłania do funkcji lub wątku.

Zwroty

Planowany wątek.

Akceptuje funkcję lub wątek (jako zwrócony przez coroutine.create) i zaplanuje go, aby zostać wykonany/zakomunikowany na następnym Heartbeat po upływie danej ilości czasu w sekundach. Argumenty po drugiej stronie są wysyłane do funkcji/wątku.

Funkcja ta różni się od deprecji globalnej funkcji delay w tym, że nie następuje przeciąganie się : na tym samym kroku Heartbeat, w którym wystarczająco dużo czasu minęło, funkcja jest gwarantowana, aby zostać wezwana / zatrzymana. Dostarczanie okresu zero (0) zagwarantuje, że funkcja zostanie wywołana na następnym Heartbeat.

Możesz obliczyć rzeczywisty czas minął poprzez wezwanie os.clock() przy planowaniu i w funkcji zaplanowanej.

Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania serweryjnego, to funkcja lub wątek opóźniony zostanie wznowiony w fazie wykonania serweryjnego. Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania równoległej, to funkcja lub wątek opóźniony zostanie w fazie wykonania równoległej. Aby uzyskać więcej informacji, zobacz Luau równoległe.

Parametry

duration: number

Minimalna liczba sekund, które muszą minąć przed wezwaniem/zakrzywieniem funkcji/wątku.

functionOrThread: function | coroutine
...: Variant

Argumenty do przekazania funkcji/wątku, gdy należy ją wezwać/wznowić.

Zwroty

Planowany wątek.

desynchronize

()

Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania serwialnego, desynchronize zawiesza skrypt i skrypt zostaną wznowione w następnej fazie wykonania równoległej. Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania równoległej, desynchronize natychmiastowo zwraca i nie ma efektu.

Tylko skrypty, które są potomstwami aktora, mogą wywołać ten metodę. Jeśli skrypt poza aktorem wywoła ten metodę, błąd zostanie podwyższony.ModuleScript może również wywołać desynchronize , o ile instalacja modułu, która go wzywa, wymaga od aktora.

Dla więcej informacji, zobacz Luau równoległy .

Zwroty

()

synchronize

()

Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania równoległego, synchronize zawiesza skrypt i skrypt zostaną wznowione w następnej fazie wykonania równoległego. Jeśli skrypt wezwania jest obecnie uruchomiony w fazie wykonania równoległego, synchronize natychmiastowo zwraca i nie ma efektu.

Tylko skrypty, które są potomstwami aktora, mogą wywołać ten metodę. Jeśli skrypt poza aktorem wywoła ten metodę, błąd zostanie podwyższony.ModuleScript może również wywołać synchronize , o ile instalacja modułu, która go wzywa, wymaga od aktora.

Dla więcej informacji, zobacz Luau równoległy .

Zwroty

()

wait

Zwraca bieżący wątek do czasu określonego (w sekundach), a następnie kontynuuje wątek na następnym kroku Heartbeat. Wynik czasu rzeczywisty jest zwracany.

Jeśli określona jest żadna długość, domyślnie zostanie ustawiona na zero (0). Oznacza to, że wątek zostanie na bieżąco uruchomiony na następnym kroku, co jest równoznaczne z zachowaniem RunService.Heartbeat:Wait()

W przeciwieństwie do przestarzałego globalnego wait , ta funkcja nie kłamuje i gwarantuje ponowne uruchomienie wątku na pierwszy Heartbeat, który następuje, gdy jest due. Ta funkcja również zwraca czas miniony i nic więcej.

Jeśli skrypt jest obecnie uruchomiony w fazie wykonania serweryjnego, to skrypt jest wstrzymywany w fazie wykonania serweryjnego. Jeśli skrypt jest obecnie uruchomiony w fazie wykonania równoległej, to skrypt jest wstrzymywany w fazie wykonania równoległej. Aby uzyskać więcej informacji, zobacz Luau równoległe.

Parametry

duration: number

Ilość czasu w sekundach, która powinna minąć przed ponownym rozpoczęciem bieżącego wątku.

Wartość domyślna: 0

Zwroty

cancel

()

Anuluje wątek i zamyka go, zapobiegając jego ręcznemu lub przez zadania programu kalendarza.

Funkcja ta może być używana z innymi członkami biblioteki zadań, którzy wypatują wątku, aby anulować go przed wznowieniem. Na przykład:


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

Uwaga: wątki mogą być w stanie, w którym nie jest możliwe ich anulowanie. Na przykład, bieżący wątek i wątki, które miały rezumienie innej rutyny, mogą nie być anulowane. Jeśli tak jest, generowany jest błąd lua.

Jednak kod nie powinien polegać na szczegółowych stanie wątku lub warunkach powodujących, że task.cancel() nie zakończy się niepowodzeniem. Możliwe jest, że przyszłe aktualizacje usuną te ograniczenia i pozwolą wątkom w tych stanach zostać pomyślnie anulowane.

Parametry

thread: coroutine

Wątek, który zostanie anulowany.

Zwroty

()