{ def doc = loadXML() // heavy task edt { display(doc) } } Equivalents System.ComponentModel.BackgroundWorker - .NET Framework flash.system.Worker - Adobe Flash android.os.AsyncTask - Android Modal Execution SwingWorker is normally created for a lengthy tasks by EDT while handling callback (Listener) events. Spawning a worker thread, EDT proceeds handling current message without waiting the worker to complete. Often, this is not desirable. Often, your EDT handles a GUI component action, which demands the user to make a choice by means of another dialog, like JFileChooser, which pops up, stays responsive while user picks its option and action proceeds with selected file only after "OK" button is pressed. You see, this takes time (user responds in matter of seconds) and you need a responsive GUI (the messages are still pumped in EDT) during all this time while EDT is blocking (it does not handle newer, e.g. JFileChooser, messages in the queue before the dialog is closed and current component action is finished). The vicious cycle is broken through EDT entering a new message loop, which dispatches the messages as per normal until "modal dialog is over" arrives and normal message processing resumes from the blocked position in the component action. The open source Foxtrot project emulates the Swing message loop pumping to provide the "synchronous" execution mechanism for arbitrary user tasks, which proceeds only after the worker completes the task. button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { button.setText("Sleeping..."); String text = null; try { text = (String)Worker.post(new Task() { public Object run() throws Exception { Thread.sleep(10000); return "Slept !"; } }); } catch (Exception x) ... button.setText(text); somethingElse(); } }); Since Java 1.7, Java provides standard solution for custom secondary message loops by exposing createSecondaryLoop() in system EventQueue(). See also Abstract Window Toolkit (AWT) Swing (Java) SwingWorker ComponentUpdateThread References External links (Swing API Javadoc documentation) (AWT API Javadoc documentation) The Event-Dispatching Thread SwingWorker description from the Swing tutorial AWT/Swing event handling article about event pumping, dispatch and processing, and the EDT Foxtrot project home page Java (programming language)