Немного поздно вхожу в этот, но я бы использовал org.eclipse.ui.progress.UIJob.
Когда ваш не-пользовательский поток имеет некоторую информацию для отправки в пользовательский интерфейс, он может порождать UIJob, который выполняется на определенном дисплее. За кулисами используется asyncExec, но вместе с ним вы получаете множество полезных частей API заданий, таких как ProgressMonitor, отмена задания, планирование правил и объединение / ожидание других заданий.