task
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
La libreria delle attività consente alle funzioni e ai thread di essere programmati con il Schediatore delle Attività.
Le funzioni disponibili in questa libreria generalmente supportano le funzioni e i thread. In most casi l'utilizzo di una funzione è sufficiente, ma per casi più avanzati è consigliato familiarizzarsi con la coroutine libreria.
Sommario
Funzioni
Chiama/riprende una funzione/coroutine immediatamente attraverso il Agendadel motore.
Chiama/riprende una funzione/coroutine alla fine del ciclo di riassunzione corrente.
Programma una funzione / coroutine da chiamare / riprendere al prossimo Heartbeat dopo che la durata (in secondi) specificata è passata, senza limitare.
Causa il seguente codice per essere eseguito in parallelo.
Causa il seguente codice per essere eseguito in serie.
Genera il thread corrente fino alla prossima Heartbeat in cui la durata specificata (in secondi) è scorsa, senza limitare.
Cancella un Filo, impedendogli di essere riavviato.
Funzioni
spawn
Accetta una funzione o un thread (come richiesto da coroutine.creare) e lo chiama/riprende immediatamente attraverso il Agendadel motore. Gli argomenti dopo il primo vengono inviati alla funzione/al thread.
Questa funzione è basata sul modello fastSpawn invece di essere un sostituto della funzione globale deprecata spawn . Si consiglia di utilizzare questa funzione invece di fastSpawn.
Se lo script di chiamata è in esecuzione in una fase di esecuzione seriale, allora la funzione o il thread generati sono ripresi nella fase di esecuzione seriale attuale. Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, allora la funzione o il thread generati sono ripresi nella fase di esecuzione parallela attuale. Per ulteriori informazioni, vedi Luau Parallelo .
Parametri
Restituzioni
Il Filoprogrammato.
defer
Accetta una funzione o un thread (come richiesto da coroutine.creare) e lo ritarda fino alla fine del ciclo di riavvio corrente, al quale punto viene riavviato con il programmatore del motore come con task.spawn() . Gli argomenti dopo i primi vengono inviati alla funzione/ thread.
Questa funzione dovrebbe essere utilizzata quando un comportamento simile a task.spawn() è desiderato, ma il thread non deve essere eseguito immediatamente.
Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, allora la funzione o il thread deferito viene ripresa in una fase di esecuzione parallela. Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, allora la funzione o il thread deferito viene ripresa in una fase di esecuzione parallela. Per ulteriori informazioni, vedi Luau parallelo .
Parametri
Restituzioni
Il Filoprogrammato.
delay
Accetta una funzione o un thread (come richiesto da coroutine.creare) e lo programma per essere chiamato / ripreso sul prossimo Heartbeat dopo l'importo di tempo specificato in secondi. Gli argomenti dopo il secondo vengono inviati alla funzione / thread.
Questa funzione differisce dalla funzione globale delay in cui si verifica in quel senza accelerazione accade : sullo stesso passo Heartbeat in cui abbastanza tempo è passato, la funzione è garantita di essere chiamata / riprendere. Fornire una durata di zero (0) garantirà che la funzione venga chiamata sul prossimo Heartbeat.
Puoi calcolare il tempo effettivo trascorso chiamando os.clock() durante la programmazione e nella funzione programmata.
Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, allora la funzione o il thread ritardata viene ripresa in una fase di esecuzione parallela. Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, allora la funzione o il thread ritardata viene ripresa in una fase di esecuzione parallela. Per ulteriori informazioni, vedi Luau parallelo .
Parametri
Restituzioni
Il Filoprogrammato.
desynchronize
Se lo script di chiamata è in esecuzione in una fase di esecuzione seriale, desynchronize sospende lo script e lo script verrà ripreso nella prossima fase di esecuzione parallela. Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, desynchronize restituisce immediatamente e non ha effetto.
Solo gli script che sono discendenti di un attore possono chiamare questo metodo. Se uno script all'interno di un attore chiama questo metodo, verrà visualizzato un errore. ModuleScript può anche chiamare desynchronize come long as l'istallazione del modulo che lo chiama richiesto da uno script che è discendente di un attore.
For more information, see Parallel Luau .
Restituzioni
synchronize
Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, synchronize sospende lo script e lo script verrà ripreso nella prossima fase di esecuzione parallela. Se lo script di chiamata è in esecuzione in una fase di esecuzione parallela, synchronize restituisce immediatamente e non ha effetto.
Solo gli script che sono discendenti di un attore possono chiamare questo metodo. Se uno script all'interno di un attore chiama questo metodo, verrà visualizzato un errore. ModuleScript può anche chiamare synchronize come long as l'istantazione del modulo che lo chiama richiesta da uno script che è discendente di un attore.
For more information, see Parallel Luau .
Restituzioni
wait
Esegue il thread corrente fino alla durata specificata (in secondi) e poi riprende il thread sul prossimo Heartbeat passo. Il tempo effettivo elapsed è restituito.
Se non viene fornita alcuna durata, prenderà il valore predefinito di zero (0). Ciò significa che il thread si riprende al passo successivo, che è equivalente in comportamento a RunService.Heartbeat:Wait()
A differenza del deprecato globale wait , questa funzione non limita e garantisce la ripresa del thread al primo Heartbeat che si verifica quando è dovuto. Questa funzione restituisce anche il tempo elapsed e nulla altro.
Se lo script di chiamata è in esecuzione in una fase di esecuzione seriale, allora lo script viene ripreso in una fase di esecuzione seriale. Se lo script viene attualmente eseguito in una fase di esecuzione parallela, allora lo script viene ripreso in una fase di esecuzione parallela. Per ulteriori informazioni, vedi Luau Parallelo .
Parametri
La quantità di tempo in secondi che dovrebbe scadere prima che il thread corrente sia ripreso.
Restituzioni
cancel
Cancella un thread e lo chiude, impedendogli di essere riavviato manualmente o dal Agendadi compito.
Questa funzione può essere utilizzata con altri membri della libreria delle attività che restituiscono un thread per annullarlo prima che siano riprese. Ad esempio:
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
Nota: i thread possono essere in uno stato in cui è impossibile annullarli. Ad esempio, il thread in esecuzione attuale e i thread che hanno riassunto un'altra coroutine potrebbero non essere annullati. Se questo è il caso, viene generato un errore lua.
Tuttavia, il codice non dovrebbe basarsi su uno stato o su una condizione specifici che causa task.cancel() a fallire. È possibile che gli aggiornamenti futuri elimineranno queste restrizioni e consentiranno ai thread in questi stati di essere cancellati con successo.
Parametri
Il thread che verrà cancellato.