PlatformUI.createDisplay() 是否确保通过 UI 线程创建 Display 对象?
Does PlatformUI.createDisplay() ensure creation of Display object through UI thread?
如何确保仅通过 UI 线程创建 Display 对象?
PlatformUI.createDisplay() 是否确保通过 UI 线程创建 Display 对象?
如果尚未创建显示,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。
On Mac OS X 还需要 -XstartOnFirstThread
参数才能获得正确的 UI 线程。
如何确保仅通过 UI 线程创建 Display 对象?
PlatformUI.createDisplay() 是否确保通过 UI 线程创建 Display 对象?
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。
On Mac OS X 还需要 -XstartOnFirstThread
参数才能获得正确的 UI 线程。