Files
Basalt/docs/objects/Thread.md
Robert Jelic 01412b4c55 docs
2022-07-17 22:37:32 +02:00

1.6 KiB

Threads are being executed simultaneously.

start

starts a new thread and executes the function

Parameters:

  1. function the function which should be executed

Returns:

  1. object The object in use

Usage:

  • Starts a new thread
local mainFrame = basalt.createFrame()
local aThread = mainFrame:addThread()
local function randomThreadFunction()
    while true do
        basalt.debug("Thread is active")
        os.sleep(1) -- a sleep/coroutine.yield() or pullEvent is required otherwise we will never come back to the main program (error)
    end
end
aThread:start(randomThreadfunction)
    basalt.setVariable("myThread", function() while true do os.sleep(1) end end)

<thread thread="myThread" start="true"/>

stop

stops the thread

Returns:

  1. object The object in use

Usage:

  • Stops the current running thread by clicking on a button
local mainFrame = basalt.createFrame()
local aThread = mainFrame:addThread()
local function randomThreadFunction()
    while true do
        basalt.debug("Thread is active")
        os.sleep(1) -- a sleep/coroutine.yield() or pullEvent is required otherwise we will never come back to the main program (error)
    end
end
aThread:start(randomThreadfunction)
local aButton = mainFrame:addButton():setText("Stop Thread"):onClick(function() aThread:stop() end)

getStatus

gets the current thread status

Returns:

  1. string current status - ("running", "normal", "suspended", "dead")

Usage:

local mainFrame = basalt.createFrame()
local aThread = mainFrame:addThread()
basalt.debug(aThread:getStatus())