Service provider interface (SPI) for executing of time consuming task which
results are visible in UI.
Typical usage is post-initialization of UI components or various long lasting
operations like network accessing invoked directly or indirectly by user
Note that it's often desirable to provide cancel support, at least for
longer lasting jobs. See Cancellable support.
Keep in mind that methods construct() and
Cancellable.cancel() can be called concurrently and
require proper synchronization as such.