void (@NotNull Task.Backgroundable task) { if (LOG.isDebugEnabled()) LOG.debug("CoreProgressManager#runAsynchronously, " + task, new Throwable()); if (EDT.isCurrentThreadEdt()) { runProcessWithProgressAsynchronously(task); } else { ApplicationManager.getApplication().invokeLater(() -> { Project project = task.getProject(); if (project != null && project.isDisposed()) { LOG.info("Task canceled because of project disposal: " + task); finishTask(task, true, null); return; } runProcessWithProgressAsynchronously(task); }, ModalityState.defaultModalityState()); } }