public static void launchModal(String title, MonitoredRunnable runnable) {

		new TaskLauncher(new Task(title, true, true, true) {
			@Override
			public void run(TaskMonitor monitor) {
				runnable.monitoredRun(monitor);
			}
		}, null, INITIAL_MODAL_DELAY_MS);
	}
A convenience method to directly run a {@link MonitoredRunnable} in a separate
thread as a {@link Task}, displaying a <b>modal</b> progress dialog.
<pre>{@code
TaskLauncher.launchModal("My task",
   null, // parent
   monitor -> { while (!monitor.isCanceled()) { longRunningWork(); } }
);
}</pre>

<p>Note: the task created by this call will be both cancellable and have progress.  If
you task cannot be cancelled or does not have progress, then do not use this
convenience method, but rather call one of the constructors of this class or
{@link #launchModal(String, MonitoredRunnable)}.

@param title name of the task thread that will be executing this task.
@param runnable {@link MonitoredRunnable} that takes a {@link TaskMonitor}.
Ghidra/Framework/Docking/src/main/java/ghidra/util/task/TaskLauncher.java