首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >invokeLater/invokeAndWait和syncExec/syncExec之间的差异

invokeLater/invokeAndWait和syncExec/syncExec之间的差异
EN

Stack Overflow用户
提问于 2016-10-20 13:19:33
回答 1查看 627关注 0票数 3

我正在使用Eclipse和Swing进行一个项目。我看到有两对方法-- invokeLater()/invokeAndWait()asyncExec()/syncExec() --经常使用。

据我所知,invokeLater()/invokeAndWait()属于Swing,asyncExec()/syncExec()属于Eclipse。但是这两种方法有什么区别呢?

如果它们都用于在UI线程上执行任务,那么它们将任务发布到的是同一个UI线程吗?invokeLater()asyncExec()可以互换吗?

是否存在潜在的陷阱(如死锁等)如果我打电话给syncExec(),比如从invokeAndWait()打来的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 13:35:22

Eclipse使用SWT用户界面,这是一个与Swing完全不同的UI系统。asyncExec()/syncExec()是SWT系统的一部分。

如果您正在为Eclipse编写Eclipse或插件,则应该编写SWT代码。

SWT确实提供了一种使用Swing代码的方法,但这应该是最后的手段。

由于它们是完全不同的UI系统,每个系统都有自己的事件循环,invokeAndWaitsyncExec是不可互换的。当有两个UI事件循环运行时,很容易陷入混乱。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40155636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档