【问题标题】:SwingUtilities invokeLater equivalent in SWT / Eclipse 3.x API?SwingUtilities invokeLater 在 SWT / Eclipse 3.x API 中等效吗?
【发布时间】:2014-02-21 17:04:47
【问题描述】:

Eclipse API 3.x 中的 SwingUtilities.invokeLater() 等价物是什么?

即如何在“主线程”上运行一些东西?

我可以用吗

@Inject 
UISynchronize sync;

在 Eclipse Plug-In 3.x 中为此?

据记载,UISynchronize“自 1.0 以来”有效。这是什么意思?那为什么在e4包里呢?

【问题讨论】:

  • 任何定义“主线程”的概念

标签: java eclipse eclipse-plugin swt long-running-processes


【解决方案1】:

您只能在 Eclipse 4.x 应用程序模型对象上使用@Inject(Eclipse 4.x API 称为e4)。因此,除非您做额外的工作,否则您不能在 Eclipse 3.x API 中使用注入。

Eclipse 的最新版本确实支持使用org.eclipse.ui.views 扩展点的e4view 元素声明的视图。这些可以利用@Inject。

Display.getDefault().asyncExec() 与SWT 对象一起使用以在SWT 主线程中运行代码。

Display.getDefault().asyncExec(new Runnable()
{
  @Override
  public void run()
  {
     .. code to update the UI
  }
});

【讨论】:

  • 从你身边总是非常有用的内容!
猜你喜欢
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多