1

如果您不在 AWT 事件线程上,则有许多方法不应该调用。这些通常是以某种方式操纵 UI 的方法。

Component 的 getGraphicsConfiguration(...) 是这种情况吗?它只是一个 getter,但如果事件线程正在等待调用此方法的线程,它似乎会导致死锁。

虽然解决死锁相当简单(避免在事件线程上使用等待或同步),但我是否应该只在传递给 SwingUtilities.invokeLater(...) 或 invokeAndWait(...) 的 Runnable 中调用 getGraphicsConfiguration?

4

1 回答 1

1

AWT 线程安全(必然)被破坏。只是不要靠近它。保持直线 AWT EDT

另请注意,仅仅因为方法在 中java.awt.Component,并不意味着对象(或由它引用的对象)不在 Swing 中,因此甚至根本不假装是线程安全的。(够不够?)

于 2009-03-26T15:59:04.303 回答