进度管理器。取消按钮
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
。
在我的插件中,我执行了一个网络查询,得到了结果 并显示处理步骤。
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
。