public void createPartControl(Composite parent)
What do I mean by "executes a new thread the conventional way" ? Well here's an example (let's say we have a class or subclass WeatherData which implements Runnable) :
// This will produce an "Invalid thread access" error
Thread thread = new Thread(new WeatherData());
To eliminate the "Invalid thread access" issue, use this instead :
parent.getDisplay().syncExec(new WeatherData());