task

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Perpustakaan tugas memungkinkan fungsi dan thread untuk dijadwalkan dengan penjadwal mesin .

Fungsi yang tersedia di perpustakaan ini umumnya mendukung fungsi dan thread.Dalam kebanyakan kasus penggunaan fungsi sudah cukup, tetapi untuk kasus yang lebih maju disarankan agar Anda mengenal diri dengan perpustakaan coroutine.

Rangkuman

Fungsi

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

    Memanggil/melanjutkan fungsi/koroutine segera melalui penjadwal mesin.

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

    Memanggil/melanjutkan fungsi/koroutine pada akhir siklus penangguhan saat ini.

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

    Jadwalkan fungsi/korutin untuk dipanggil/dilanjutkan pada Heartbeat berikutnya setelah durasi yang diberikan (dalam detik) berlalu, tanpa memperlambat.

  • Menyebabkan kode berikut dijalankan secara paralel.

  • Menyebabkan kode berikut untuk dijalankan secara seri.

  • wait(duration : number):number

    Menghasilkan thread saat ini tanpa membatasi.

  • cancel(thread : coroutine):()

    Membatalkan thread, mencegahnya dimulai kembali.

Fungsi

Menerima fungsi atau thread (seperti yang dikembalikan oleh coroutine.create() ) dan memanggil/melanjutkannya segera melalui penjadwal mesin.Argumen setelah yang pertama dikirim ke fungsi/ thread.

Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi seri, maka fungsi atau thread yang dihasilkan dipulihkan dalam fase eksekusi seri saat ini.Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi paralel, maka fungsi atau thread yang dihasilkan dipulihkan dalam fase eksekusi paralel saat ini.Untuk informasi lebih lanjut, lihat Parallel Luau.

Parameter

functionOrThread: function | coroutine

Fungsi atau thread yang dikembalikan oleh coroutine.create() .

...: Variant

Argumen untuk dikirim ke fungsi atau thread.

Memberikan nilai

Thread yang dijadwalkan.

Menerima fungsi atau thread (seperti yang dikembalikan oleh coroutine.create()) dan menundanya sampai akhir titik resume saat ini dalam frame saat ini.

Fungsi ini harus digunakan ketika perilaku serupa dengan task.spawn() diinginkan, tetapi thread tidak perlu dijalankan segera.

Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi seri, maka fungsi atau thread yang ditunda diambil kembali dalam fase eksekusi seri.Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi paralel, maka fungsi atau thread yang ditunda diambil kembali dalam fase eksekusi paralel.Untuk informasi lebih lanjut, lihat Parallel Luau.

Parameter

functionOrThread: function | coroutine

Fungsi atau thread yang dikembalikan oleh coroutine.create.

...: Variant

Argumen untuk dikirim ke fungsi atau thread.

Memberikan nilai

Thread yang dijadwalkan.

Menerima fungsi atau thread (seperti yang dikembalikan oleh coroutine.create() ) dan menjadwalkannya untuk dipanggil/diteruskan pada saat berikutnya Heartbeat setelah jumlah waktu yang diberikan dalam detik telah berlalu.Argumen setelah yang kedua dikirim ke fungsi/ thread.

Fungsi ini berbeda dari fungsi global deprecated yang dihapus karena tidak ada penurunan terjadi : pada langkah yang sama dengan cukup banyak waktu telah berlalu, fungsi dijamin dipanggil/dipulihkan.Memberikan durasi nol ( 0 ) akan menjamin bahwa fungsi dipanggil pada langsung berikutnya Heartbeat .

Anda dapat menghitung waktu aktual yang dihabiskan dengan memanggil os.clock() saat menjadwalkan dan dalam fungsi yang dijadwalkan.

Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi seri, maka fungsi atau thread tertunda diambil kembali dalam fase eksekusi seri.Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi paralel, maka fungsi atau thread tertunda diambil kembali dalam fase eksekusi paralel.Untuk informasi lebih lanjut, lihat Parallel Luau.

Parameter

duration: number

Jumlah minimum detik yang harus dilalui sebelum fungsi/ thread dipanggil/dilanjutkan.

functionOrThread: function | coroutine
...: Variant

Argumen yang harus disampaikan ke fungsi/ thread saat harus dipanggil/dilanjutkan.

Memberikan nilai

Thread yang dijadwalkan.

desynchronize

()

Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi seri, desynchronize() menghentikan skrip dan skrip akan dilanjutkan di fase eksekusi paralel berikutnya.Jika skrip panggil saat ini berjalan dalam fase eksekusi paralel, desynchronize() kembali segera dan tidak berpengaruh.

Hanya skrip yang merupakan keturunan dari Actor dapat memanggil metode ini.Jika skrip di luar Actor panggilan metode ini, kesalahan akan dibangkitkan. ModuleScripts mungkin juga memanggil desynchronize() selama instansiasi modul yang memanggilnya diperlukan oleh skrip yang merupakan keturunan dari Actor .

Untuk informasi lebih lanjut, lihat Parallel Luau.

Memberikan nilai

()

synchronize

()

Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi paralel, synchronize() menghentikan skrip dan skrip akan dilanjutkan di fase eksekusi seri berikutnya.Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi seri, synchronize() kembali segera dan tidak berpengaruh.

Hanya skrip yang merupakan keturunan dari Actor dapat memanggil metode ini.Jika skrip di luar Actor panggilan metode ini, kesalahan akan dibangkitkan. ModuleScripts mungkin juga memanggil synchronize() selama instansiasi modul yang memanggilnya diperlukan oleh skrip yang merupakan keturunan dari Actor .

Untuk informasi lebih lanjut, lihat Parallel Luau.

Memberikan nilai

()

wait

Menghasilkan thread saat ini sampai durasi yang diberikan (dalam detik) telah berlalu, lalu melanjutkan thread pada langkah berikutnya Heartbeat .Jumlah waktu yang sebenarnya terlewati dikembalikan.

Jika tidak ada durasi yang diberikan, itu akan default ke nol ( 0 ).Ini berarti thread dilanjutkan pada langkah berikutnya, yang setara dalam perilaku dengan Class.RunService.Heartbeat:Wait()

Tidak seperti global deprecated wait() , fungsi ini tidak memperlambat dan menjamin pemulihan thread pada Heartbeat pertama yang terjadi saat jatuh tempo.Fungsi ini juga hanya mengembalikan waktu yang berlalu dan tidak ada hal lain.

Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi seri, maka skrip diambil kembali dalam fase eksekusi seri.Jika skrip panggil saat ini sedang berjalan dalam fase eksekusi paralel, maka skrip diambil kembali dalam fase eksekusi paralel.Untuk informasi lebih lanjut, lihat Parallel Luau.

Parameter

duration: number

Jumlah waktu dalam detik yang harus berlalu sebelum thread saat ini dilanjutkan.

Nilai Default: 0

Memberikan nilai

cancel

()

Membatalkan thread dan menutupnya, mencegahnya dimulai ulang secara manual atau oleh penjadwal mesin.

Fungsi ini dapat digunakan dengan anggota lain dari library tugas yang mengembalikan thread untuk membatalkannya sebelum mereka dilanjutkan. Misalnya:


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

Perhatikan bahwa thread mungkin berada dalam keadaan di mana tidak mungkin membatalkannya.Sebagai contoh, thread yang saat ini dijalankan dan thread yang telah dilanjutkan kembali dari coroutine lain mungkin tidak dapat dibatalkan.Jika ini adalah kasusnya, kesalahan akan dihasilkan.Namun, kode tidak boleh bergantung pada status atau kondisi thread tertentu yang menyebabkan task.cancel() gagal.Dimungkinkan bahwa pembaruan di masa depan akan menghilangkan batasan ini dan memungkinkan thread di negara-negara ini untuk dibatalkan dengan sukses.

Parameter

thread: coroutine

Thread yang akan dibatalkan.

Memberikan nilai

()