The IRunnableWithProgress interface should be implemented by any class whose instances are intended to be executed as long-running operations. These objects can then be run in any runnable context (IRunnableContext), including such standard JFace UI components as application windows (ApplicationWindow), wizard dialogs (WizardDialog), and progress monitor dialogs (ProgressMonitorDialog). The utility class ModalContext defines the basic mechanism and UI event loop for modal operations.