# Class Synchronizer

java.lang.Object
org.eclipse.swt.widgets.Synchronizer

Direct Known Subclasses:
  `UISynchronizer`

public class Synchronizer extends Object
Instances of this class provide synchronization support for displays. A default instance is created automatically for each display, and this instance is sufficient for almost all applications.

IMPORTANT: Typical application code never needs to deal with this class. It is provided only to allow applications which require non-standard synchronization behavior to plug in the support they require. Subclasses which override the methods in this class must ensure that the superclass methods are invoked in their implementations

See Also:
  - `Display.setSynchronizer(Synchronizer)`
  - Sample code and further information

## Constructor Summary

Constructors
Constructor
Description
`Synchronizer(Display display)`
Constructs a new instance of this class.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`asyncExec(Runnable runnable)`
Causes the `run()` method of the runnable to be invoked by the user-interface thread at the next reasonable opportunity.
`protected void`
`syncExec(Runnable runnable)`
Causes the `run()` method of the runnable to be invoked by the user-interface thread at the next reasonable opportunity.

### Methods inherited from class Object

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

## Constructor Details

### Synchronizer

public Synchronizer(Display display)
Constructs a new instance of this class.

Parameters:
  `display` - the display to create the synchronizer on

## Method Details

### asyncExec

protected 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.
See Also:
  - `syncExec(Runnable)`

### syncExec

protected 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.

Parameters:
  `runnable` - code to run on the user-interface thread.
Throws:
  `SWTException` -
  - ERROR_FAILED_EXEC - if an exception occurred when executing the runnable
See Also:
  - `asyncExec(Runnable)`