task
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Thư viện nhiệm vụ cho phép các chức năng và luồng được lên lịch với lịch trình của động cơ.
Các chức năng có sẵn trong thư viện này thường hỗ trợ chức năng và luồng.Trong hầu hết các trường hợp sử dụng chức năng là đủ, nhưng đối với các trường hợp nâng cao hơn, được khuyến nghị bạn quen thuộc với thư viện coroutine .
Tóm Tắt
Chức Năng
Gọi/tiếp tục một chức năng/coroutine ngay lập tức thông qua lịch trình của động cơ.
Gọi/tái khởi động một chức năng/coroutine ở cuối chu kỳ tái khởi động hiện tại.
Lên lịch một chức năng/coroutine để được gọi/tái khởi động trong tiếng nhịp tim tiếp theo sau khi thời gian được cho (theo giây) đã qua, mà không bị giới hạn.
Gây ra mã sau đây được chạy song song.
Gây ra mã sau đây được chạy trong chuỗi.
Sản xuất luồng hiện tại mà không bị giới hạn.
Hủy một luồng, ngăn nó được khởi động lại.
Chức Năng
spawn
Chấp nhận một chức năng hoặc một luồng (như được trả lại bởi coroutine.create()) và gọi/tái khởi động nó ngay lập tức thông qua lịch trình của động cơ.Các tham số sau thứ nhất được gửi đến chức năng/luồng.
Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì chức năng hoặc luồng được tạo sẽ được khởi động lại trong giai đoạn thực thi song song hiện tại.Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì chức năng hoặc luồng được tạo sẽ được khởi động lại trong giai đoạn thực thi song song hiện tại.Để biết thêm thông tin, xem Luau song song .
Tham Số
Một chức năng hoặc một luồng trả về bởi coroutine.create() .
Các tham số để gửi cho chức năng hoặc luồng.
Lợi Nhuận
Chủ đề được lên lịch.
defer
Chấp nhận một chức năng hoặc một luồng (như được trả lại bởi coroutine.create()) và hoãn nó cho đến khi kết thúc điểm dừng lại hiện tại trong khung hiện tại.
Chức năng này nên được sử dụng khi hành vi tương tự với task.spawn() là mong muốn, nhưng luồng không cần phải chạy ngay lập tức.
Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì chức năng hoặc luồng được trì hoãn sẽ được khởi động lại trong giai đoạn thực thi song song.Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì chức năng hoặc luồng được trì hoãn sẽ được khởi động lại trong giai đoạn thực thi song song.Để biết thêm thông tin, xem Luau song song .
Tham Số
Lợi Nhuận
Chủ đề được lên lịch.
delay
Chấp nhận một chức năng hoặc một luồng (như được trả lại bởi coroutine.create() ) và lên lịch cho nó được gọi/tái khởi động vào ngày tiếp theo Heartbeat sau khi số thời gian được cho trước đã hết.Các tham số sau thứ hai được gửi đến chức năng/luồng.
Chức năng này khác với chức năng toàn cầu bị loại bỏ trong đó không có giới hạn thời gian xảy ra : trên cùng một bước mà đủ thời gian đã trôi qua, chức năng được đảm bảo được gọi/tái khởi động.Cung cấp một thời gian bằng không ( 0 ) sẽ đảm bảo rằng chức năng được gọi trên ngay lập tức tiếp theo Heartbeat .
Bạn có thể tính thời gian thực bằng cách gọi os.clock() khi lên lịch và trong chức năng được lên lịch.
Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì chức năng hoặc luồng chậm được khởi động lại trong giai đoạn thực thi song song.Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì chức năng hoặc luồng chậm được khởi động lại trong giai đoạn thực thi song song.Để biết thêm thông tin, xem Luau song song .
Tham Số
Lợi Nhuận
Chủ đề được lên lịch.
desynchronize
Nếu kịch bản gọi hiện đang chạy trong giai đoạn thực thi song song, desynchronize() tạm dừng kịch bản và kịch bản sẽ được khởi động lại trong giai đoạn thực thi song song tiếp theo.Nếu kịch bản gọi đang chạy trong giai đoạn thực hiện song song, desynchronize() trả lại ngay lập tức và không có hiệu lực.
Chỉ các kịch bản là con cháu của một Actor có thể gọi phương pháp này.Nếu một kịch bản bên ngoài một Actor gọi phương pháp này, một lỗi sẽ được nâng lên. ModuleScripts cũng có thể gọi desynchronize() miễn là việc khởi tạo của mô-đun gọi nó được yêu cầu bởi một kịch bản là con cháu của một Actor .
Để biết thêm thông tin, xem Luau song song .
Lợi Nhuận
synchronize
Nếu kịch bản gọi đang chạy trong giai đoạn thực hiện song song, synchronize() tạm dừng kịch bản và kịch bản sẽ được khởi động lại trong giai đoạn serial tiếp theo.Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, synchronize() trả lại ngay lập tức và không có hiệu lực.
Chỉ các kịch bản là con cháu của một Actor có thể gọi phương pháp này.Nếu một kịch bản bên ngoài một Actor gọi phương pháp này, một lỗi sẽ được nâng lên. ModuleScripts cũng có thể gọi synchronize() miễn là việc khởi tạo của mô-đun gọi nó được yêu cầu bởi một kịch bản là con cháu của một Actor .
Để biết thêm thông tin, xem Luau song song .
Lợi Nhuận
wait
Sản xuất luồng hiện tại cho đến khi thời gian được cho (theo giây) đã hết, sau đó tiếp tục luồng trên bước tiếp theo Heartbeat .Số thời gian thực tế đã trôi qua được trả lại.
Nếu không có thời lượng được cung cấp, nó sẽ mặc định là không ( 0 ).Điều này có nghĩa là luồng tiếp tục trong bước tiếp theo, tương đương về hành vi với Class.RunService.Heartbeat:Wait()
Không giống như toàn cầu bị loại bỏ wait() , chức năng này không giới hạn và đảm bảo khởi động lại luồng trên nhịp tim đầu tiên xảy ra khi nó phải xảy ra.Chức năng này cũng chỉ trả lại thời gian trôi qua và không có gì khác.
Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì kịch bản sẽ được khởi động lại trong giai đoạn thực thi song song.Nếu kịch bản gọi đang chạy trong giai đoạn thực thi song song, thì kịch bản sẽ được khởi động lại trong giai đoạn thực thi song song.Để biết thêm thông tin, xem Luau song song .
Tham Số
Số thời gian bằng giây mà nên trôi qua trước khi tiếp tục tiền thớt hiện tại.
Lợi Nhuận
cancel
Hủy một luồng và đóng nó, ngăn nó được khởi động lại thủ công hoặc bởi lịch trình của động cơ.
Chức năng này có thể được sử dụng với các thành viên khác của thư viện nhiệm vụ trả về một tiến trình để hủy chúng trước khi chúng được tiếp tục. Ví dụ:
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
Lưu ý rằng các luồng có thể ở trong trạng thái mà không thể hủy chúng.Ví dụ, luồng đang thực hiện hiện tại và các luồng đã khởi động lại một coroutine khác có thể không bị hủy.Nếu đây là trường hợp, một lỗi sẽ được tạo ra.Tuy nhiên, mã không nên dựa vào các trạng thái hoặc điều kiện cụ thể của luồng gây ra task.cancel() thất bại.Có thể các bản cập nhật trong tương lai sẽ loại bỏ những hạn chế này và cho phép các luồng trong các trạng thái này bị huỷ thành công.
Tham Số
Chủ đề sẽ bị huỷ.