【发布时间】:2014-05-29 15:00:57
【问题描述】:
我知道 Swing 单线程规则(来自Java Concurrency in Practice):
应创建、修改和查询 Swing 组件和模型 仅来自事件调度线程。
反之亦然吗?我维护一些将事件信息写入文件的事务日志代码,它有时会在 EDT 上执行此操作。这是一种不好的做法吗?
【问题讨论】:
-
不应在 EDT 上执行长时间运行的任务。它将导致 UI 变得无响应。这不是必需品,但您的客户会喜欢的。
-
@Paul Reiners 写道 -
to a file and it sometimes does this on the EDT.,这是不对的,你必须决定它是否总是在 EDT 结束或永远不会,然后你可以选择你必须使用哪种方法使用,中间什么都没有, -
长时间运行是指运行时间超过 300 毫秒的代码。
标签: java swing event-dispatch-thread