SystemJobRunnableContext
This runnable context executes its operation in the context of a background job.
class
SystemProgressDialogRunnableContext
This runnable context blocks the UI and can therefore have a shell assigned to
it (since the shell won't be closed by the user before the runnable completes).