Main Thread Functions#
These methods are utility functions to run code on the main thread. This is required when you want to run custom code on the UI thread.
InvokeSync#
API: InvokeSync(fn func())
This function runs the passed function (fn
) synchronously. It uses a WaitGroup
(wg
) to ensure that the main thread waits for the fn
function to finish
before it continues. If a panic occurs inside fn
, it will be passed to the
handler function PanicHandler
, defined in the application options.
InvokeSyncWithResult#
API: InvokeSyncWithResult[T any](fn func() T) (res T)
This function works similarly to InvokeSync(fn func())
, however, it yields a
result. Use this for calling any function with a single return.
InvokeSyncWithError#
API: InvokeSyncWithError(fn func() error) (err error)
This function runs fn
synchronously and returns any error that fn
produces.
Note that this function will recover from a panic if one occurs during fn
's
execution.
InvokeSyncWithResultAndError#
API:
InvokeSyncWithResultAndError[T any](fn func() (T, error)) (res T, err error)
This function runs fn
synchronously and returns both a result of type T
and
an error.
InvokeAsync#
API: InvokeAsync(fn func())
This function runs fn
asynchronously. It runs the given function on the main
thread. If a panic occurs inside fn
, it will be passed to the handler function
PanicHandler
, defined in the application options.
Note: These functions will block execution until fn
has finished. It's
critical to ensure that fn
doesn't block. If you need to run a function that
blocks, use InvokeAsync
instead.