进度管理器。取消按钮

ProgressManager. Cancel button

在我的插件中,我执行了一个网络查询,得到了结果 并显示处理步骤。

CoreProgressManager.getInstance().runProcessWithProgressSynchronously(Runnable {
        //runnable block
        CoreProgressManager.getInstance().progressIndicator.text  = "Start loading"
        val result = MyProvider.getObjects() // this network request
        CoreProgressManager.getInstance().progressIndicator.text  = "Finish"
        result.forEach {
            //processing result
            CoreProgressManager.getInstance().progressIndicator.text  = "Processing is $result"
        }
    }, taskTitle, true /* canBeCanceled */, project)

有时查询被网络执行了很长时间,我想停止工作所有块(runnable block)。 为此,在 runProcessWithProgressSynchronously 中我传递了参数 canBeCanceled = true 天真地以为IDEA会停止执行我的可执行块,但是这并没有发生。

如何捕获取消按钮的点击并停止我的可运行块?

您需要定期从您的街区呼叫 ProgressIndicator.checkCanceled()。如果按下取消按钮,此方法将抛出 ProcessCanceledException