@Contract(pure = true)
  public @NotNull ProgressRunner<R> onThread(@NotNull ThreadToUse thread) {
    return thread == myThreadToUse ? this : new ProgressRunner<>(myComputation, isSync, isModal, thread, myProgressIndicatorFuture);
  }
@Contract(pure = true)
  public @NotNull ProgressRunner<R> onThread(@NotNull ThreadToUse thread)