2009-03-26 5 views
1

Il existe plusieurs méthodes que vous ne devez pas appeler si vous n'êtes pas dans le thread d'événement AWT. Ce sont généralement des méthodes qui manipulent l'interface utilisateur d'une manière ou d'une autre. Est-ce le cas avec getGraphicsConfiguration de Component (...)? C'est seulement un getter mais il semble provoquer un blocage si le thread d'événement attend sur le thread appelant cette méthode. Alors que la résolution de l'interblocage est assez triviale (évitez d'utiliser wait ou synchronize sur le thread d'événement), devrais-je seulement appeler getGraphicsConfiguration dans un Runnable passé à SwingUtilities.invokeLater (...) ou invokeAndWait (...)?Le thread Component.getGraphicsConfiguration est-il sécurisé?

Répondre

1

La sécurité des filetages AWT est (nécessairement) cassée. Juste ne va pas près de là. Restez sur la ligne droite AWT EDT

Notez également que ce n'est pas parce qu'une méthode est dans java.awt.Component que l'objet (ou un objet référencé par lui) n'est pas dans Swing et ne prétend donc même pas être threadé. sûr du tout. (Assez pas?)

+0

euh ... donc vous dites oui n'utilisez la méthode que quand je suis sur le fil de l'événement? –

+0

Je dis qu'il serait fortement conseillé de le faire. –

Questions connexes