protected void executeProgressTask(Task task, int delay) {
		if (taskMonitorComponent == null) {
			throw new AssertException("Cannot execute tasks in a " +
				"DialogComponentProvider that has not been created to run taks.");
		}

		if (task.isModal()) {
			throw new IllegalArgumentException("Task cannot be modal");
		}

		task.addTaskListener(this);
		taskScheduler.set(task, delay);
	}
Execute a non-modal task that has progress and can be cancelled.

@param task task to execute; a progress bar is displayed next to the status field
       in this dialog if the task has progress; for  indeterminate tasks, a
       "spinning globe" is displayed to indicate that something is happening.
@param delay number of milliseconds to delay until progress bar is displayed; a
       value less than or equal to 0 means to show the progress bar immediately
@throws IllegalArgumentException if the given task is modal
Ghidra/Framework/Docking/src/main/java/docking/DialogComponentProvider.java