task
*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
Memanggil/melanjutkan fungsi/koroutine segera melalui penjadwal mesin.
Memanggil/melanjutkan fungsi/koroutine pada akhir siklus penangguhan saat ini.
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.
Menghasilkan thread saat ini tanpa membatasi.
Membatalkan thread, mencegahnya dimulai kembali.
Fungsi
spawn
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
Fungsi atau thread yang dikembalikan oleh coroutine.create() .
Argumen untuk dikirim ke fungsi atau thread.
Memberikan nilai
Thread yang dijadwalkan.
defer
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
Memberikan nilai
Thread yang dijadwalkan.
delay
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
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
Jumlah waktu dalam detik yang harus berlalu sebelum thread saat ini dilanjutkan.
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 yang akan dibatalkan.