Skip to content

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.