我应该如何确保仅通过UI线程创建Display对象?
PlatformUI。createDisplay()确保通过UI线程创建Display对象吗?
答案 0 :(得分:0)
PlatformUI.createDisplay
基本上只会执行new Display()
。它旨在像IApplication
这样使用:
public class Application implements IApplication
{
@Override
public Object start(final IApplicationContext context)
{
final Display display = PlatformUI.createDisplay();
try
{
final int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART)
return IApplication.EXIT_RESTART;
return IApplication.EXIT_OK;
}
finally
{
display.dispose();
}
}
将创建显示并使用当前线程作为用户界面线程运行RCP。
在Mac OS X上,还需要-XstartOnFirstThread
参数来获取正确的UI线程。