Jadwal Kode

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

Jadwal kode berguna dalam banyak situasi, seperti menjamin kode berjalan setelah tindakan atau siklus tertentu telah selesai, atau menunda kode untuk durasi waktu tertentu. Anda dapat menggunakan perpustakaan task untuk mengoptimalkan Jadwal Kode Roblox untuk mengel

Metode Umum

Berikut adalah metode paling umum task yang digunakan untuk menjadwalkan kode. Anda harus menggunakan metode tugas di atas metode jadwalan warisan, seperti wait(), untuk memastikan bahwa kode Anda berjalan secara maksimal.

Tabel berikut menyebutkan metode global yang relevan dan counterpart mereka yang lebih dioptimalkan:

| Metode Global Warisan | Metode Tugas | | Metode Pengambilan Kesimpulan | | | Metode Pengambilan Kesimpulan | | | | Metode Pengambilan Kesimpulan | | | | Metode Pengambilan Kesimpulan | | | | Metode Pengambilan Kesimpulan | | | | Metode Pengambilan Kesimpulan | | | | Metode Pengambilan Kesimpulan | | | | Metode Pengambilan Kesimpulan

tugas.spawn

task.spawn() mengambil thread atau fungsi dan menyimpannya kembali segera melalui pengatur jadwal mesin. Argument tambahan ditransmisikan ke thread atau fungsi yang ditransmisikan.

Contoh kode berikut adalah contoh bagaimana Anda dapat menggunakan task.spawn() ketika memanggil fungsi yang dapat dihasilkan saat beriterasi di atas set objek:


local function playerAdded(player)
...
(yield)
end
for _, player in Players:GetPlayers() do
task.spawn(playerAdded, player)
end

tugas.defer

task.defer() mengambil thread atau fungsi dan menunda sampai siklus resumption berikutnya di mana itu diambil dengan pengatur jadwal mesin.引數 tambahan diberikan ke thread atau fungsi resumen.

Anda biasanya harus menggunakan ini ketika Anda ingin perilaku serupa untuk task.spawn() tetapi tidak peduli tentang thread yang berjalan segera. Contoh kode berikut menunjukkan cara print() statement untuk "A" akan menunda sampai setelah 1> print()1>


task.defer(print, "A")
print("B")
--> B
--> A

延迟任务

task.delay() mengambil thread atau fungsi dan menjadwalkannya untuk resumption setelah jumlah waktu yang diberikan di langkah berikutnya Heartbeat . The thread resumes dengan built-in error handling dan dukungan untuk fitur-fitur mesin lainnya. Setiap argumen tambahan diberikan ke thread atau fungsi resumption.

Karena waktu tunda sebenarnya dapat bervariasi, contoh kode berikut menunjukkan cara menghitungnya dengan melewati waktu saat ini sebagai argumen:


task.delay(2, function(scheduledTime)
print(os.clock() - scheduledTime) --> 2.038702
end, os.clock())

Durasi nol akan menyebabkan thread atau fungsi berhenti pada langkah berikutnya.

tunggu.

task.wait() menghasilkan thread saat ini sampai durasi yang ditentukan (dalam detik) berakhir dan kemudian mengambil kembali thread pada langkah berikutnya Heartbeat .

Waktu hasil sebenarnya mungkin bervariasi. Berikut contoh kode menunjukkan cara metode ini mengembalikannya untuk kenyamanan:

Karena waktu tunda sebenarnya dapat bervariasi, contoh kode berikut menunjukkan cara Anda bisa mendapatkan waktu tunda sebenarnya dengan menyimpan nilai kembali metode:


local elapsedTime = task.wait(2) -- tunggu 2 detik
print(elapsedTime) --> 2.0792941

Jika tidak ada durasi diberikan, durasi akan default ke nol berarti thread akan secara otomatis restart pada langkah berikutnya. Ini berarti task.wait() adalah setara dalam perilaku dengan RunService.Heartbeat .