Bug 53582 Rebuild Project are not run in the background?
The "Build All" and "Rebuild All" actions are run in the background, but the "Build Project" and "Rebuild Project" actions aren't. This is not consistent and I was surprised to get a modal dialog when performing a "Rebuild Project".
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/BuildAction.java
return resourceCollection;
	
	String[] orderedNames = ResourcesPlugin.getWorkspace().getDescription().getBuildOrder();
	if (orderedNames != null) {
		List orderedProjects = new ArrayList(resourceCollection.size());
		
		List unorderedProjects = new ArrayList(resourceCollection.size());
		unorderedProjects.addAll(resourceCollection);
	
		for (int i = 0; i < orderedNames.length; i++) {
			String projectName = orderedNames[i];
			for (int j = 0; j < resourceCollection.size(); j++) {
				IProject project = (IProject) resourceCollection.get(j);
				if (project.getName().equals(projectName)) {
					orderedProjects.add(project);
					unorderedProjects.remove(project);
					break;
				}
			}
		}
		
		orderedProjects.addAll(unorderedProjects);
		return orderedProjects;
	}
	
	IProject[] projects = new IProject[resourceCollection.size()];
	projects = (IProject[]) resourceCollection.toArray(projects);
	IWorkspace.ProjectOrder po = ResourcesPlugin.getWorkspace().computeProjectOrder(projects);
	ArrayList orderedProjects = new ArrayList();
	orderedProjects.addAll(Arrays.asList(po.projects));