2016-08-24 42 views
1

这里是我的代码的简化版本。 configurations是类型ILaunchConfiguration阵列Eclipse插件:如何同步运行for-loop中的Launch-Configurations?

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

我想要实现的是,当一个之前被终止每ILaunchConfiguration只启动。用我当前的代码,我有线程行为。所有配置同时开始。

我应该改变什么?

回答

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 
    } 
    } 
} 

一旦所有的发射进程已终止你可以做下一次发射。