#Async Eclipse Job Example
@Inject
private UISynchronize uiSync;
public void doSomething() {
Job j = new Job("Doing work") {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
// Do something
uiSync.asyncExec(() -> {
// Do something long-running that updates the UI
});
}
catch (Exception e) {
uiSync.asyncExec(() -> {
MessageDialog.openError(parent.getShell(), "Got error", e.getMessage());
});
}
return Status.OK_STATUS;
}
};
j.setUser(true);
j.setPriority(Job.LONG);
j.schedule();
}