SwingUtilities.invokeLater
не будет блокировать выполнение текущего потока. Если в это верится, вы можете просто сделать
System.out.println("Before");
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//code of private function
}
});
System.out.println("After");
и вы увидите Before
и After
, напечатанные сразу после друг друга более или менее немедленно.
(убедитесь, что вы случайно не использовали SwingUtilities.invokeAndWait
.)