多个事件分派线程

发布于 2024-12-03 08:37:48 字数 258 浏览 2 评论 0原文

我是 Java Swing 新手,我的问题与事件队列和调度线程相关。

我读到可以有多个事件队列,每个 AppContext 实例。同样,这是否意味着每个 AppContext 事件队列都有自己的事件调度线程。

I am new to Java Swing and my question is related to Event Queues and Dispatch threads.

I read that it is possible to have multiple event queues , each per AppContext instance. Similarly does it mean each AppContext Event queue has its own event dispatch thread.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泅渡 2024-12-10 08:37:48

据我所知,只能有一个事件调度线程。

显然 AppContext 不适合开发人员使用,尽管我不太熟悉它。

It is only possible to have one event dispatch thread as far as I'm aware.

Apparently AppContext is not meant to be used by developers, although I'm not really familiar with it.

深爱成瘾 2024-12-10 08:37:48

1) 基本上你只需要知道你的代码是否会在 EDT 上完成(所有更改都必须在 EDT 上完成),

2) 如果你有任何疑问,可以测试

if (EventQueue.isDispatchThread()) {

or (这是相同的,如果是在 EDT 上则返回 true )

if (SwingUtilities.isEventDispatchThread()) {

更多此处此处

3) 后台任务的所有输出必须包装到 invokeLater() 中,关于 Swing 中的并发

1) basically you only needed to know if your code will be done on EDT (all changes must be done on EDT),

2) if you have any doubts, it is possible to test

if (EventQueue.isDispatchThread()) {

or (that's same and returns true if is on EDT)

if (SwingUtilities.isEventDispatchThread()) {

more here or here

3) all output from Background tasks must be wrapped into invokeLater(), basic stuff about Concurency in Swing

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文