# Task Built-in task scheduler & thread spawning #### Example usage ```lua local task = require("@lune/task") -- Waiting for a certain amount of time task.wait(1) print("Waited for one second") -- Running a task after a given amount of time task.delay(2, function() print("Ran after two seconds") end) -- Spawning a new task that runs concurrently task.spawn(function() print("Running instantly") task.wait(1) print("One second passed inside the task") end) print("Running after task.spawn yields") ``` ## Functions ### cancel Stops a currently scheduled thread from resuming. #### Parameters - `thread` The thread to cancel --- ### defer Defers a thread or function to run at the end of the current task queue. #### Parameters - `functionOrThread` The function or thread to defer - `...` T... #### Returns - The thread that will be deferred --- ### delay Delays a thread or function to run after `duration` seconds. If no `duration` is given, this will wait for the minimum amount of time possible. #### Parameters - `duration` number? - `functionOrThread` The function or thread to delay - `...` T... #### Returns - The thread that will be delayed --- ### spawn Instantly runs a thread or function. If the spawned task yields, the thread that spawned the task will resume, letting the spawned task run in the background. #### Parameters - `functionOrThread` The function or thread to spawn - `...` T... #### Returns - The thread that was spawned --- ### wait Waits for _at least_ the given amount of time. The minimum wait time possible when using `task.wait` is limited by the underlying OS sleep implementation. For most systems this means `task.wait` is accurate down to about 5 milliseconds or less. #### Parameters - `duration` The amount of time to wait #### Returns - The exact amount of time waited ---