2009-11-12 61 views

回答

4

不。它可能會工作,也可能會導致問題。只需將該方法包裝在SwingUtilities.invokeLater(...)中,不用擔心。

+0

是的,但在新的runnable中包裝一個方法調用看起來很麻煩,不是嗎? – 2009-11-12 21:55:10

+3

繁瑣與否,如果您需要從另一個線程執行gui工作,那您就必須這樣做 – nos 2009-11-12 21:56:03

+0

調用方法似乎不太可能是唯一正在完成的任務。可能有其他代碼正在以非線程安全的方式運行。 (無論如何,真正的h4x0rz會使用'java.beans.EventHandler')。 – 2009-11-12 22:14:28

2

不,Swing不是線程安全的。使用類似

Runnable doWorkRunnable = new Runnable() { 
    public void run() { myFrame.dispose(); } 
}; 
SwingUtilities.invokeLater(doWorkRunnable); 
Runnable doWorkRunnable = new Runnable() { 
    public void run() { myFrame.dispose(); } 
}; 
SwingUtilities.invokeLater(doWorkRunnable); 
相關問題