当前位置: 首页 > 知识库问答 >
问题:

是否可以中断ApplicationManager.getApplication().ExecuteOnPooledThread调用的runnable?

漆雕硕
2023-03-14

我目前正在开发一个嵌入JCEF用于前端交互的IDEA扩展。一旦用户单击按钮,将执行MessageRouterHandler中实现的OnQuery方法,并执行一项耗时的任务。

这个耗时的任务是在一个方法中实现的(在主线程以外的线程上异步执行,以防UI被冻结),并以如下形式包装

private void task(CefBrowser browser, CefQueryCallback callback) {
    ApplicationManager.getApplication().executeOnPooledThread(() -> {
        ...DETAILED IMPLEMENTATION FOR THE TASK...
    });
}

共有1个答案

容寒
2023-03-14

需要时间的任务应该在进度指示器下执行,请参见com.intellij.openapi.progress.ProgressManager。在执行任务期间,您可以调用com.intellij.openapi.progress.ProgressManager#checkcanceled查看用户是否取消了任务。

 类似资料:
  • 问题内容: 我有一个Python 2.7方法,有时会调用 当满足正确的条件时,是否可以进行单元测试以验证是否调用了此代码行? 问题答案: 是。加注,因此您可以使用以下命令进行检查: 的实例具有设置为建议的退出状态的属性,并且返回的上下文管理器将捕获的异常实例设置为,因此检查退出状态很容易: sys.exit文档: 从Python退出。这是通过引发异常来实现的…可以在外部级别拦截出口尝试。

  • 问题内容: 是否可以从Java调用COM API(特别是HP / Mercury Quality Center OTA API)?如果是这样,最好的方法是什么? 像JACOB一样合适吗? 代码片段对于基础知识会有所帮助:-) 问题答案: jacob:是的,http://sourceforge.net/projects/jacob- project/ 是一个活跃的项目,可以很好地满足您的目的。 您可

  • 问题内容: 我知道linux确实做了嵌套的中断,其中一个中断可以“抢占”另一个中断,但是其他任务呢。 我只是想了解linux如何处理中断。它们可以被其他用户任务/内核任务抢占吗? 问题答案: 简单答案:中断只能被更高优先级的中断所中断。 因此, 如果 中断的优先级低于内核调度程序中断优先级或用户任务中断优先级,则中断可以被内核或用户任务中断。 注意,“用户任务”是指 用户定义的中断 。

  • 我仍然是AnyLogic和JAVA的基本用户,但我遇到了获取服务块剩余时间的问题。我知道服务块嵌入了延迟块,并且有一个用于延迟的函数(getRemainingTime(代理))。是否可以在(代理)main中调用此函数? 我需要获得我的产品将停留在服务块的时间,以导航我的推送过程。我有3个产品(都是个人代理)和一个在服务前装配我的产品和1个原材料(个人代理)的拾取块。显然,剩余时间必须是动态的,并且

  • 问题内容: 我是jni的新手,如果可以使用jni实现需要完成的工作,我会感到非常困惑。我想制作一个Java api,它将使用jdbc更新数据库,但是将从C ++程序调用此特定api。 因此,我认为我可能应该编写通过jdbc访问数据库的jni代码(甚至可能吗?),创建C 代码并生成dll,以便其他C 程序可以调用dll来更新数据库。这一切可能吗?如果是这样,我如何在jni中真正调用jdbc?如果最终

  • 我有一个由几千个类组成的大项目。今天,我发现对于某些输入,在启用断言的情况下运行时会计算出不同的结果。 null