1.6 KiB
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.