กำหนดการเรียกร้อง

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

รหัสกำหนดการนัดหมายเป็นประโยชน์ในหลายสถานการณ์เช่นการให้แน่ใจว่าโค้ดจะประมวลผลหลังจากที่ดำเนินการหรือวงจรเฉพาะสำเร็จหรือล

วิธีการทั่วไป

ต่อไปนี้คือวิธีการ task รหัสคุณควรใช้วิธีการทาสก์เหนือวิธีการจัดการกำหนดเวลาในอดีตเช่น wait() เพื่อให้แน่ใจว่าโค้ดขอ

ตารางต่อไปนี้รายการวิธีการระดับโลกที่เกี่ยวข้องและคู่มือที่เหมาะสมที่สุดของพวกเขา:

| วิธีการสื่อสารระหว่างเครื่องคอมพิวเตอร์กับเครื่องพิมพ์เขียวของเรา | วิธีการสื่อสารระหว่างเครื่องคอมพิวเตอร์ของคุณกับเครื่องพิมพ์เขียวของเร

โทร.spawn

task.spawn() ใช้ธนานทรัพย์หรือฟังก์ชันและดำเนินการต่อไป ทันที ผ่านตัวปรับแต่งเวลาของเครื่องผ่านตัวปรับแต่งเวลาของเครื่อง

ตัวอย่างรหัสต่อไปนี้เป็นตัวอย่างวิธีการที่คุณสามารถใช้ task.spawn() เมื่อเรียกฟังก์ชันที่อาจจะเกิดขึ้นในขณะที่เรียกตัวแปรสองสามตัว


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

ภารกิจ.defer

task.defer() ใช้ธนานทรีหรือฟังก์ชันและเลื่อนกลับไปยังวันที่ต่อไปของวัฏจัดการ เมื่อใดก็ตามที่มันจะเริ่มต้นขึ้นด้วยตัวนับเวลาของเครื่องยนต์

คุณควรใช้สิ่งนี้เมื่อคุณต้องการพฤติกรรมที่คล้ายกันกับ task.spawn() แต่ไม่สนใจว่าเส้นทางการประมวลผลทันที ตัวอย่างโค้ดต่อไป


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

รองาน

task.delay() ใช้ธนานทูตหรือฟังก์ชันและกำหนดเวลาการทำงานใหม่หลังจากผ่านจุดมุ่งหมายในการดำเนินงานต่อไปของ Heartbeat สเต็ป ธนานทู

เนื่องจากเวลาล่าช้าที่เกิดขึ้นจริงอาจแตกต่างกันไป ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นวิธีการคุณสามารถคำนวณได้โดยการส่งเวลาปัจจุบันเป็นตัวอย่าง:


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

ระยะเวลาของ zero จะนำไปสู่การเริ่มต้นใหม่ของทรีดาวน์หรือการทำงานในขั้นตอนถัดไป

รองรับ

task.wait() ให้เวลาปัจจุบันจนกว่าจะหมดอายุ (ในวินาที) แล้วสิ้นสุดการทำงานของธรรมชาติแล้วเริ่มตัวทำงานใหม่ในขั้นตอนต่อไป Heartbeat

เวลาการผลิตจริงอาจแตกต่างกัน ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นวิธีการนี้สร้างขึ้นเพื่อความสะดวก:

เนื่องจากเวลาล่าช้าที่เกิดขึ้นจริงอาจแตกต่างกันไป ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นวิธีการที่คุณสามารถรับเวลาจริงโดยการเก็บค่ากลับของวิธี:


local elapsedTime = task.wait(2) -- รอ 2 วินาที
print(elapsedTime) --> 2.0792941

หากไม่มีระยะเวลาที่กำหนดระยะเวลาจะเริ่มต้นที่ 0 ซึ่งหมายความว่าไม่มีการประมวลผลอยู่ในขั้นตอนต่อไป นี่หมายถึง task.wait() ในการกําหนดพฤติกรรมเท่านั้น