Using the Jobs API (Job and IProgressMonitor) you can implement code that will run in a thread and update the standard Eclipse progress monitoring service as you go along in your thread.
To create a job, extend from org.eclipse.core.runtime.Job and implement the run method:
protected IStatus run(IProgressMonitor monitor) {
int steps = 100000;
monitor.beginTask("My Task", steps);
for ( int i=0; i
To activate the job in MyClass (say it's a page with a tableViewer which we use to set the input), you do the following:
MySampleJob myJob = new MySampleJob();
myJob .addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
MyClass.this.tableViewer.
setInput(myJob .getInputForTableViewer());
}
});
}
});
myJob.schedule();
Have fun!