Package org.eclipse.handly.util

# Class UiSynchronizer

java.lang.Object
org.eclipse.handly.util.UiSynchronizer

public abstract class UiSynchronizer extends Object
Allows to execute runnables in the user-interface thread.

Restriction:
  This class is not intended to be extended by clients.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UiSynchronizer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract void`
  `asyncExec(Runnable runnable)`
  Causes the `run()` method of the runnable to be invoked by the user-interface thread at the next reasonable opportunity; the caller of this method continues to run in parallel, and is not notified when the runnable has completed.
  `static UiSynchronizer`
  `getDefault()`
  Returns a default instance of the synchronizer, or `null` if it is not available at this time (e.g., when running headless).
  `abstract Thread`
  `getThread()`
  Returns the user-interface thread the synchronizer uses to execute runnables.
  `abstract void`
  `syncExec(Runnable runnable)`
  Causes the `run()` method of the runnable to be invoked by the user-interface thread at the next reasonable opportunity; the thread which calls this method is suspended until the runnable completes.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### UiSynchronizer

    public UiSynchronizer()

- ## Method Details

  - ### getDefault

    public static UiSynchronizer getDefault()
    Returns a default instance of the synchronizer, or `null` if it is not available at this time (e.g., when running headless).

  - ### getThread

    public abstract Thread getThread()
    Returns the user-interface thread the synchronizer uses to execute runnables.
    Returns:
      the user-interface thread (not `null`)
    Throws:
      `IllegalStateException` - if the synchronizer can no longer be accessed (e.g., the underlying display has been disposed)

  - ### asyncExec

    public abstract void asyncExec(Runnable runnable)
    Causes the `run()` method of the runnable to be invoked by the user-interface thread at the next reasonable opportunity; the caller of this method continues to run in parallel, and is not notified when the runnable has completed.
    Parameters:
      `runnable` - code to run on the user-interface thread (not `null`)
    Throws:
      `IllegalStateException` - if the synchronizer can no longer be accessed (e.g., the underlying display has been disposed)

  - ### syncExec

    public abstract void syncExec(Runnable runnable) throws ExecutionException
    Causes the `run()` method of the runnable to be invoked by the user-interface thread at the next reasonable opportunity; the thread which calls this method is suspended until the runnable completes.
    Parameters:
      `runnable` - code to run on the user-interface thread (not `null`)
    Throws:
      `IllegalStateException` - if the synchronizer can no longer be accessed (e.g., the underlying display has been disposed)
      `ExecutionException` - if an exception occurred when executing the runnable