Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

FAQ Can I make a job run in the UI thread?

Revision as of 04:02, 30 April 2014 by Matthias.mailaender.vogella.com (Talk | contribs) (Category)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

If you create and schedule a simple job, its run method will be called outside the UI thread. If you want to schedule a job that accesses UI widgets, you should subclass org.eclipse.ui.progress.UIJob instead of the base Job class. The UI job’s runInUIThread method will, as the name implies, always be invoked from the UI thread. Make sure that you don’t schedule UI jobs that take a long time to run because anything that runs in the UI thread will make the UI unresponsive until it completes.

Although running a UI job is much like using the SWT’s Display methods asyncExec and timerExec, UI jobs have a few distinct advantages.

  • They can have scheduling rules to prevent them from running concurrently with jobs in other threads that may conflict with them.
  • You can install a listener on the job to find out when it completes.
  • You can specify a priority on the job so the platform can decide not to run it immediately if it is not as important.

See Also:


This FAQ was originally published in Official Eclipse 3.0 FAQs. Copyright 2004, Pearson Education, Inc. All rights reserved. This text is made available here under the terms of the Eclipse Public License v1.0.

Back to the top