task

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

La libreria attività consente di programmare funzioni e thread con il Agendadell'engine.

Le funzioni disponibili in questa libreria generalmente supportano funzioni e thread.Nella maggior parte dei casi l'utilizzo di una funzione è sufficiente, ma per casi più avanzati è consigliato familiarizzare con la libreria coroutine.

Sommario

Funzioni

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

    Chiama/riprende una funzione/coroutine immediatamente attraverso il Agendadell'engine.

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

    Chiama/riprende una funzione/coroutine alla fine del ciclo di ripresa attuale.

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

    Programma una funzione/coroutine da chiamare/riprendere nel prossimo battito cardiaco dopo che è passata la durata indicata (in secondi), senza limitare la velocità.

  • Causa l'esecuzione del seguente codice in parallelo.

  • Causa l'esecuzione del seguente codice in serie.

  • wait(duration : number):number

    Rilascia il thread attuale senza limitazione.

  • cancel(thread : coroutine):()

    Annulla un Filo, impedendo il suo riavvio.

Funzioni

Accetta una funzione o un thread (come restituito da coroutine.create() ) e lo chiama/riprende immediatamente attraverso il Agendadell'engine.Gli argomenti dopo il primo vengono inviati alla funzione/thread.

Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione seriale, la funzione o il thread generato viene ripreso nella fase di esecuzione seriale attuale.Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione parallela, la funzione o il thread generato viene ripreso nella fase di esecuzione parallela attuale.Per maggiori informazioni, vedi Luau parallelo.

Parametri

functionOrThread: function | coroutine

Una funzione o un thread restituito da coroutine.create() .

...: Variant

Argomenti da inviare alla funzione o al Filo.

Restituzioni

Il Filoprogrammato.

Accetta una funzione o un thread (come restituito da coroutine.create() ) e lo rinvia fino alla fine del punto di ripresa attuale all'interno del quadro attuale.

Questa funzione deve essere utilizzata quando un comportamento simile a task.spawn() è desiderabile, ma il thread non deve essere eseguito immediatamente.

Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione seriale, la funzione o il thread delegato viene ripreso in una fase di esecuzione seriale.Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione parallela, la funzione o il thread delegato viene ripreso in una fase di esecuzione parallela.Per maggiori informazioni, vedi Luau parallelo.

Parametri

functionOrThread: function | coroutine

Una funzione o un thread restituito da coroutine.creare.

...: Variant

Argomenti da inviare alla funzione o al Filo.

Restituzioni

Il Filoprogrammato.

Accetta una funzione o un thread (come restituito da coroutine.create() ) e lo programma per essere chiamato/ripreso nel prossimo Heartbeat dopo il lasso di tempo dato in secondi.Gli argomenti dopo il secondo vengono inviati alla funzione/thread.

Questa funzione differisce dalla funzione globale deprecata delay() in quanto non si verifica alcuna accelerazione : sullo stesso passo Heartbeat in cui è passato abbastanza tempo, la funzione è garantita di essere chiamata/ripresa.Fornire una durata di zero ( 0 ) garantirà che la funzione verrà chiamata nel molto successivo Heartbeat .

Puoi calcolare il tempo effettivo trascorso chiamando os.clock() al momento della programmazione e nella funzione programmata.

Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione seriale, la funzione o il thread ritardato viene ripreso in una fase di esecuzione seriale.Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione parallela, la funzione o il thread ritardato viene ripreso in una fase di esecuzione parallela.Per maggiori informazioni, vedi Luau parallelo.

Parametri

duration: number

Il numero minimo di secondi che deve passare prima che la funzione/thread venga chiamata/ripresa.

functionOrThread: function | coroutine
...: Variant

Argomenti da passare alla funzione/thread quando deve essere chiamata/ripresa.

Restituzioni

Il Filoprogrammato.

desynchronize

()

Se lo script di chiamata è attualmente 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 è attualmente in esecuzione in una fase di esecuzione parallela, desynchronize() restituisce immediatamente e non ha alcun effetto.

Solo gli script che sono discendenti di un Actor possono chiamare questo metodo.Se uno script al di fuori di un Actor chiama questo metodo, verrà sollevata un'errore.ModuleScripts può anche chiamare desynchronize() finché l'istanziamento del modulo che lo chiama era richiesto da uno script che è un discendente di un Actor .

Per maggiori informazioni, vedi Luau parallelo.

Restituzioni

()

synchronize

()

Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione parallela, synchronize() sospende lo script e lo script verrà ripreso nella prossima fase di esecuzione seriale.Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione seriale, synchronize() restituisce immediatamente e non ha alcun effetto.

Solo gli script che sono discendenti di un Actor possono chiamare questo metodo.Se uno script al di fuori di un Actor chiama questo metodo, verrà sollevata un'errore.ModuleScripts può anche chiamare synchronize() finché l'istanziamento del modulo che lo chiama era richiesto da uno script che è un discendente di un Actor .

Per maggiori informazioni, vedi Luau parallelo.

Restituzioni

()

wait

Rende il thread attuale fino a quando la durata indicata (in secondi) non è trascorsa, quindi riprende il thread al prossimo passo Heartbeat .Viene restituita la quantità effettiva di tempo trascorso.

Se non viene fornita alcuna durata, prenderà per default zero ( 0 ).Questo significa che il thread riprende nel passo successivo, che è equivalente in comportamento a Class.RunService.Heartbeat:Wait()

A differenza della global deprecated wait() , questa funzione non limita e garantisce il riavvio del thread al primo Heartbeat che si verifica quando è dovuto.Questa funzione restituisce anche solo il tempo trascorso e nient'altro.

Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione seriale, allora lo script viene ripreso in una fase di esecuzione seriale.Se lo script di chiamata è attualmente in esecuzione in una fase di esecuzione parallela, allora lo script viene ripreso in una fase di esecuzione parallela.Per maggiori informazioni, vedi Luau parallelo.

Parametri

duration: number

La quantità di tempo in secondi che dovrebbe scadere prima che venga ripreso il thread attuale.

Valore predefinito: 0

Restituzioni

cancel

()

Annulla un thread e lo chiude, impedendo che venga ripreso manualmente o dal Agendadell'engine.

Questa funzione può essere utilizzata con altri membri della libreria task che restituiscono un thread per annullarli prima che vengano ripresi. Ad esempio:


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

Si noti che i thread possono essere in uno stato in cui non è possibile annullarli.Ad esempio, il thread in esecuzione attualmente e i thread che hanno ripreso un'altra coroutine non possono essere annullati.Se questo è il caso, verrà generato un errore.Tuttavia, il codice non dovrebbe fare affidamento su stati o condizioni di thread specifici che causino il fallimento di task.cancel().È possibile che future aggiornamenti elimineranno queste restrizioni e consentiranno di annullare con successo i thread in questi stati.

Parametri

thread: coroutine

Il thread che verrà annullato.

Restituzioni

()