You start the task in a new thread, then you use this.task.get(). The get() method waits for the task to complete before returning. So you essentially start a task in a different thread, then pause the current thread till the task is done - which behaves just like you never ran the task in the other thread to begin with. So don't call the task.get() method from the event dispatch thread.
Instead, use a call back. Have the task pass its data to the event dispatch thread as part of an event when the task is done. SwingWorker provides a nice structure to do so with in the environment of Swing. It probably works just as well in SWT apps. If not, then check to see if SWT has its own class which will help you.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: Callable and SWT - How to keep Thread in Background when startet by ButtonDown-Event