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 ditetapkan dengan Scheduled Task Scheduler.
Fungsi yang tersedia di library ini umumnya mendukung fungsi dan thread. Dalam kebanyakan kasus menggunakan fungsi cukup, tetapi untuk kasus yang lebih maju disarankan agar Anda mengenal diri dengan coroutine library.
Rangkuman
Fungsi
Memanggil/menyelesaikan fungsi/koroutine secara instan melalui jadwal pengaturan mesin.
Memanggil/menyelesaikan fungsi/koroutine di akhir siklus resum pada saat ini.
Jadwal fungsi/rutinitas untuk dipanggil/dijalankan pada Heartbeat berikutnya setelah durasi yang diberikan (dalam detik) telah berakhir, tanpa menyebabkan kelambatan.
Mengakibatkan kode berikut untuk dijalankan secara paralel.
Mengakibatkan kode berikut untuk dijalankan secara seri.
Menyelesaikan thread saat ini sampai dengan Heartbeat berikutnya di mana durasi yang diberikan (dalam detik) telah berakhir, tanpa menyebabkan kelambatan.
Batalkan thread, mencegahnya dilanjutkan.
Fungsi
spawn
Menerima fungsi atau thread (seperti yang dikembalikan oleh coroutine.create) dan mengeksekutnya langsung melalui pengatur jadwal mesin.引数之后, argumen pertama dikirim ke fungsi/ thread.
Fungsi ini didasarkan pada pola fastSpawn daripada menjadi fungsi pengganti global spawn . Diperlukan agar fungsi ini digunakan sebagai pengganti dari fungsi global deprecated.
Jika script panggilan saat ini berjalan dalam fase eksekusi seri, maka fungsi atau thread yang dihasilkan di fase eksekusi seri saat ini diambil kembali. Jika script panggilan saat ini berjalan dalam fase eksekusi paralel, maka fungsi atau thread yang dihasilkan di fase eksekusi paralel saat ini diambil kembali. Untuk informasi lebih lanjut, lihat Luau Paralel.
Parameter
Memberikan nilai
Jadwal subjek.
defer
Menerima fungsi atau thread (sebagai yang dikembalikan oleh coroutine.create) dan menunda sampai akhir siklus resumption saat ini, di mana titiknya diambil dengan pengatur jadwal mesin seperti dengan task.spawn() . Argument setelah yang pertama dikirim ke fungsi/thread.
Fungsi ini harus digunakan ketika perilaku serupa dengan task.spawn() diinginkan, tetapi thread tidak perlu berjalan segera.
Jika skrip panggilan saat ini berjalan dalam fase eksekusi seri, maka fungsi atau thread yang ditunda dianggap kembali dalam fase eksekusi seri. Jika skrip panggilan saat ini berjalan dalam fase eksekusi paralel, maka fungsi atau thread yang ditunda dianggap kembali dalam fase eksekusi paralel. Untuk informasi lebih lanjut, lihat Luau Paralel.
Parameter
Memberikan nilai
Jadwal subjek.
delay
Menerima fungsi atau thread (sebagai yang dikembalikan oleh coroutine.create) dan menjadwalkannya untuk dipanggil/diberhentikan pada Heartbeat berikutnya setelah jumlah waktu yang diberikan dalam detik telah berakhir.引参after kedua dikirim ke fungsi/ thread.
Fungsi ini berbeda dari fungsi global yang deprecated delay di dalam 5>tidak ada penundaan terjadi : pada langkah Heartbeat yang sama, durasi yang cukup telah berlalu, fungsi dijamin untuk dipanggil / dilanjutkan. Memberikan durasi nol (0) akan menjamin bahwa fungsi ini dipanggil pada Heartbeat berikutnya.
Anda dapat menghitung waktu yang sebenarnya dihabiskan dengan menelepon os.clock() pada jadwal dan dalam fungsi yang direncanakan.
Jika skrip panggilan saat ini berjalan dalam fase eksekusi seri, maka fungsi tertunda atau thread diambil kembali dalam fase eksekusi seri. Jika skrip panggilan saat ini berjalan dalam fase eksekusi paralel, maka fungsi tertunda atau thread diambil kembali dalam fase eksekusi paralel. Untuk informasi lebih lanjut, lihat Luau Paralel .
Parameter
Memberikan nilai
Jadwal subjek.
desynchronize
Jika script panggilan saat ini berjalan dalam tahap eksekusi seri, desynchronize menghentikan script dan script akan dilanjutkan dalam tahap eksekusi paralel berikutnya. Jika script panggilan saat ini berjalan dalam tahap eksekusi paralel, desynchronize segera mengembalikan dan tidak ada efek.
Hanya skrip yang menjadi turunan dari Actor yang dapat memanggil metode ini. Jika skrip di luar Actor menyebutkan metode ini, kesalahan akan diangkat. ModuleScript juga dapat menyebutkan desynchronize sebagai selama instialisasi modul yang memang dibutuhkan oleh skrip yang merupakan turunan dari Actor.
Untuk lebih banyak informasi, lihat Parallel Luau .
Memberikan nilai
synchronize
Jika script panggilan saat ini berjalan dalam fase eksekusi paralel, synchronize menghentikan script dan script akan dilanjutkan dalam fase eksekusi seri berikutnya. Jika script panggilan saat ini berjalan dalam fase eksekusi seri, synchronize segera kembali dan tidak ada efek.
Hanya skrip yang menjadi turunan dari Actor yang dapat memanggil metode ini. Jika skrip di luar Actor menyebutkan metode ini, kesalahan akan diangkat. ModuleScript juga dapat menyebutkan synchronize sebagai selama instialisasi modul yang memang dibutuhkan oleh skrip yang merupakan turunan dari Actor.
Untuk lebih banyak informasi, lihat Parallel Luau .
Memberikan nilai
wait
Menyelesaikan thread saat ini sampai durasi yang ditentukan (dalam detik) telah berakhir, lalu mengambil kembali thread pada langkah berikutnya Heartbeat. Jumlah waktu yang sebenarnya diambil kembali dikembalikan.
Jika tidak ada durasi yang diberikan, itu akan default ke nol (0). Ini berarti thread berhenti pada langkah berikutnya, yang sama dalam perilaku dengan RunService.Heartbeat:Wait()
Tidak seperti global deprecated wait , fungsi ini tidak menyusutkan dan menjamin resumsi thread pada Heartbeat pertama yang terjadi ketika waktunya tepat. Fungsi ini juga hanya mengembalikan waktu tertinggal dan tidak ada lagi.
Jika script panggilan saat ini berjalan dalam fase eksekusi seri, maka script diambil kembali dalam fase eksekusi seri. Jika script panggilan saat ini berjalan dalam fase eksekusi paralel, maka script diambil kembali dalam fase eksekusi paralel. Untuk informasi lebih lanjut, lihat Luau Paralel.
Parameter
Jumlah waktu dalam detik yang harus tersisa sebelum thread saat ini dilanjutkan.
Memberikan nilai
cancel
Batalkan thread dan tutupnya, mencegahnya dimulai ulang secara manual atau oleh pengatur jadwal tugas.
Fungsi ini dapat digunakan dengan anggota lain dari perpustakaan tugas yang mengembalikan thread untuk men取消 mereka sebelum mereka dilanjutkan. Misalnya:
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
Catatan: Thread mungkin berada dalam kondisi di mana tidak mungkin untuk menghapus mereka. Misalnya, thread yang sedang dieksekusi dan thread yang telah dilanjutkan coroutine lain mungkin tidak dibatalkan. Jika demikian, kesalahan lua akan dihasilkan.
Namun, kode seharusnya tidak bergantung pada status subprocess atau kondisi tertentu yang menyebabkan task.cancel() untuk gagal. Mungkin saja pembaruan masa depan akan menghapus batasan ini dan memungkinkan thread di negara ini untuk dibatalkan dengan sukses.
Parameter
Thread yang akan dibatalkan.