Eclipse插件:如何在for循环中同步运行Launch-Configurations?

时间:2016-08-24 13:24:27

标签: eclipse eclipse-plugin eclipse-rcp

这是我的代码的简化版本。 configurationsILaunchConfiguration类型的数组

for (int j = 0; j < configurations.length; j++) {               
   configurations[j].launch("debug", null);
}

我希望实现每个ILaunchConfiguration仅在前一个C终止时启动。使用我当前的代码我有线程行为。所有配置同时启动。

我应该改变什么?

1 个答案:

答案 0 :(得分:2)

您无法在一个简单的循环中执行此操作,因为您必须使用IDebugEventSetListener侦听器来侦听启动终止所创建的每个进程。

当您致电ILaunchConfiguration.launch时,您会收到ILaunch个对象。然后,您可以调用ILaunch.getProcesses来获取由启动创建的IProcess个对象数组(可能会创建多个进程)。

使用:

设置IDebugSetEventListener
DebugPlugin.getDefault().addDebugEventListener(listener);

在监听器handleDebugEvents中,您可以检查以下内容完成的过程:

public void handleDebugEvents(DebugEvent [] events)
{
  for (DebugEvent event : events) {
    Object source = event.getSource();
    if (source instanceof IProcess && 
        event.getKind() == DebugEvent.TERMINATE) {
      // TODO check if the process terminating is one you are interested in
    }
  }
}

一旦启动的所有流程终止,您就可以进行下一次启动。