task
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
ห้องสมุดงาน สามารถกำหนดการให้ฟังก์ชันและกระทู้ถูกนัดหมายกับตัวจัดการกำหนดเวลาของเครื่องยนต์ได้ ฟังก์ชันที่มีอยู่ในไลบรารีนี้ส่วนใหญ่สนับสนุนฟังก์ชันและกระทู้ทั่วไปในกรณีส่วนใหญ่การใช้ฟังก์ชันเพียงพอแล้ว แต่สำหรับกรณีที่ซับซ้อนมากขึ้นแนะนำให้คุณคุ้นเคยกับไลบรารี coroutine
สรุป
ฟังก์ชัน
เรียก/กลับฟังก์ชัน/คอรูตินทันทีผ่านตัวจัดกำหนดเวลาของเครื่องยนต์
เรียก/ดำเนินการต่อฟังก์ชัน/คอรูตินที่สิ้นสุดรอบการหยุดชะงักปัจจุบัน
กำหนดเวลาที่ฟังก์ชัน/คอรอลีนจะถูกเรียก/กลับมาในครั้งต่อไปหลังจากผ่านระยะเวลาที่กำหนด (ในวินาที) โดยไม่มีการจำกัดความเร็ว
ทำให้โค้ดต่อไปนี้ทำงานแบบพาราเลล
ทำให้โค้ดต่อไปนี้ถูกรันในแบบสายเรียง
ให้เธรดปัจจุบันโดยไม่มีการจำกัดความเร็ว
ยกเลิกกระทู้ทำให้ไม่สามารถดำเนินการต่อได้
ฟังก์ชัน
spawn
ยอมรับฟังก์ชันหรือกระทู้ (ตามที่ส่งกลับโดย coroutine.create() ) และเรียก/ระงับทันทีผ่านตัวจัดกำหนดเวลาของเครื่องยนต์อาร์กิวเมนต์หลังจากครั้งแรกจะถูกส่งไปยังฟังก์ชัน/กระทู้
หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบเรียลซีรีส์ ฟังก์ชันหรือกระทู้ที่สร้างขึ้นจะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบเรียลซีรีส์ปัจจุบันหากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบพาราเลล ฟังก์ชันหรือกระทู้ที่สร้างขึ้นจะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบพาราเลลปัจจุบันสำหรับข้อมูลเพิ่มเติม ดู Luau แบบพาราเลล
พารามิเตอร์
ฟังก์ชันหรือกระบวนที่ส่งคืนโดย coroutine.create() .
อาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันหรือกระบวนการ
ส่งค่ากลับ
หัวข้อที่กำหนดไว้ล่วงหน้า
defer
ยอมรับฟังก์ชันหรือกระทู้ (ตามที่ส่งกลับโดย coroutine.create() ) และเลื่อนออกไปจนกว่าจะสิ้นสุดจุดเลื่อนต่อไปภายในกรอบปัจจุบัน
ฟังก์ชันนี้ควรใช้เมื่อพฤติกรรมที่คล้ายกับ task.spawn() เป็นที่ต้องการ แต่กระทู้ไม่จำเป็นต้องรันทันที
หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบเรียลไทม์ ฟังก์ชันหรือกระบวนการที่ถูกระงับจะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบเรียลไทม์หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบพาราเลล ฟังก์ชันหรือกระทู้ที่ถูกเลื่อนก็จะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบพาราเลลสำหรับข้อมูลเพิ่มเติม ดู Luau แบบพาราเลล
พารามิเตอร์
ส่งค่ากลับ
หัวข้อที่กำหนดไว้ล่วงหน้า
delay
ยอมรับฟังก์ชันหรือกระทู้ (ตามที่ส่งกลับโดย coroutine.create() ) และกำหนดการให้เรียก/ดำเนินการต่อในภายหลังในอีก Heartbeat หลังจากระยะเวลาที่กำหนดในวินาทีหมดลงอาร์กิวเมนต์หลังจากที่สองถูกส่งไปยังฟังก์ชัน/กระทู้
ฟังก์ชันนี้แตกต่างจากฟังก์ชัน global deprecated ในที่ ไม่มีการหยุดชะงักเกิดขึ้น : ในขั้นตอนเดียวกันที่เวลาพอเพียงผ่านไปแล้ว ฟังก์ชันจะได้รับการรับประกันว่าจะถูกเรียก/ระงับการให้ระยะเวลาเป็นศูนย์ ( 0 ) จะรับประกันว่าฟังก์ชันจะถูกเรียกในครั้งต่อไป Heartbeat
คุณสามารถคำนวณเวลาที่แท้จริงโดยโทร os.clock() เมื่อกำหนดการและในฟังก์ชันที่กําหนดไว้
หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบเรียลไทม์ ฟังก์ชันหรือกระทู้ที่ล่าช้าจะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบเรียลไทม์หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบพาราเลล ฟังก์ชันหรือกระบวนการที่ล่าช้าจะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบพาราเลลสำหรับข้อมูลเพิ่มเติม ดู Luau แบบพาราเลล
พารามิเตอร์
ส่งค่ากลับ
หัวข้อที่กำหนดไว้ล่วงหน้า
desynchronize
หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบเรียงต่อเนื่อง desynchronize() ระงับสคริปต์และสคริปต์จะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบพาราเลลต่อไปหากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบพาราเลล desynchronize() จะกลับทันทีและไม่มีผล
เฉพาะสคริปต์ที่เป็นลูกหลานของ Actor เท่านั้นที่สามารถเรียกวิธีนี้ได้หากสคริปต์ภายนอกของ Actor เรียกวิธีนี้ความผิดพลาดจะถูกยกขึ้นModuleScripts อาจเรียก desynchronize() ตราบใดที่การสร้างโมดูลที่เรียกมันจำเป็นต้องใช้สคริปต์ที่เป็นลูกหลานของ Actor ก็ได้
สำหรับข้อมูลเพิ่มเติม ดู Luau แบบพาราเลล
ส่งค่ากลับ
synchronize
หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบพาราเลล synchronize() ระงับสคริปต์และสคริปต์จะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบเรียลเซิร์ฟถัดไปหากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบเรียลไทม์ synchronize() จะกลับทันทีและไม่มีผล
เฉพาะสคริปต์ที่เป็นลูกหลานของ Actor เท่านั้นที่สามารถเรียกวิธีนี้ได้หากสคริปต์ภายนอกของ Actor เรียกวิธีนี้ความผิดพลาดจะถูกยกขึ้นModuleScripts อาจเรียก synchronize() ตราบใดที่การสร้างโมดูลที่เรียกมันจำเป็นต้องใช้สคริปต์ที่เป็นลูกหลานของ Actor ก็ได้
สำหรับข้อมูลเพิ่มเติม ดู Luau แบบพาราเลล
ส่งค่ากลับ
wait
ผลิตกระทู้ปัจจุบันจนกว่าระยะเวลาที่กำหนด (ในวินาที) จะหมดลงแล้วเริ่มต้นกระทู้ในขั้นตอนต่อไป Heartbeat ขั้นตอนจำนวนเวลาที่แท้จริงที่ผ่านไปถูกส่งคืน
หากไม่มีระยะเวลาที่กำหนด มันจะเริ่มต้นที่ศูนย์ ( 0 )ซึ่งหมายความว่ากระทู้จะกลับมาในขั้นตอนต่อไปซึ่งเทียบเท่ากับ Class.RunService.Heartbeat:Wait()
ไม่เหมือนกับ global ล้าสมัย wait() ฟังก์ชันนี้ ไม่ลดความเร็ว และรับประกันการดำเนินการต่อของスレッドในครั้งแรกที่เกิดการเต้นของหัวใจเมื่อถึงเวลาฟังก์ชันนี้ยังคืนเวลาที่ผ่านไปและไม่มีอะไรอีก
หากสคริปต์ที่เรียกกำลังดำเนินการอยู่ในขั้นตอนการดําเนินการแบบเรียลไทม์ สคริปต์จะถูกระงับในขั้นตอนการดําเนินการแบบเรียลไทม์หากสคริปต์ที่เรียกกําลังดําเนินการอยู่ในขั้นตอนการดําเนินการแบบพาราเลลล์ สคริปต์จะถูกดําเนินการต่อในขั้นตอนการดําเนินการแบบพาราเลลล์สำหรับข้อมูลเพิ่มเติม ดู Luau แบบพาราเลล
พารามิเตอร์
จํานวนเวลาในวินาทีที่ควรหมดลงก่อนที่กระทู้ปัจจุบันจะถูกดําเนินการต่อ
ส่งค่ากลับ
cancel
ยกเลิกกระทู้และปิดมัน ป้องกันไม่ให้มันถูกดำเนินการต่อไปโดยการกำหนดเวลาของเครื่องยนต์หรือโดยผู้ใช้โดยตรง
ฟังก์ชันนี้สามารถใช้ร่วมกับสมาชิกคนอื่นๆ ของไลบรารี งาน ที่ส่งกลับกระบวนท่าเพื่อยกเลิกก่อนที่จะถูกดำเนินการต่อ ตัวอย่างเช่น:
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
โปรดทราบว่ากระทู้อาจอยู่ในสถานะที่ไม่สามารถยกเลิกได้ตัวอย่างเช่น กระบวนการที่กําลังดําเนินการอยู่และกระบวนการที่ได้รับการดําเนินการใหม่อีกครั้งอาจไม่ถูกยกเลิกหากเป็นกรณีนี้ข้อผิดพลาดจะถูกสร้างขึ้นอย่างไรก็ตาม โค้ดไม่ควรพึ่งพาสถานะหรือเงื่อนไขกระทู้เฉพาะที่ทําให้ task.cancel() ล้มเหลวเป็นไปได้ว่าการอัปเดตในอนาคตจะลบข้อจํากัดเหล่านี้และอนุญาตให้การดําเนินการทางธ레ดในสถานะเหล่านี้สําเร็จได้
พารามิเตอร์
กระทู้ที่จะถูกยกเลิก