R不响应中断停止进程的请求

R不响应中断停止进程的请求,r,rstudio,R,Rstudio,我时不时地要运行一个需要花费很多时间的函数,在它完成之前我需要中断处理。为此,我在Rstudio中单击控制台顶部的红色标志“停止”,它通常会返回以下消息: R没有响应您的中断处理请求,因此要停止当前操作,您可能需要完全终止R 终止R将导致您的R会话立即中止。活动计算将被中断,未保存的源文件更改和工作空间对象将被丢弃 您想现在终止R吗 问题是我单击“否”,然后Rstudios似乎完全冻结。我想知道其他人是否也面临类似的问题,以及是否有任何办法来解决这个问题 有没有一种方法可以在不丢失工作区中的对象

我时不时地要运行一个需要花费很多时间的函数,在它完成之前我需要中断处理。为此,我在Rstudio中单击控制台顶部的红色标志“停止”,它通常会返回以下消息:

R没有响应您的中断处理请求,因此要停止当前操作,您可能需要完全终止R

终止R将导致您的R会话立即中止。活动计算将被中断,未保存的源文件更改和工作空间对象将被丢弃

您想现在终止R吗

问题是我单击“否”,然后Rstudios似乎完全冻结。我想知道其他人是否也面临类似的问题,以及是否有任何办法来解决这个问题


有没有一种方法可以在不丢失工作区中的对象的情况下快速停止Rstudio中的进程?

不幸的是,Rstudio目前无法在以下几种情况下中断R:

  • R正在执行一个外部程序(例如,您不能中断
    系统(“睡眠10”)

  • R正在执行(例如)C/C++库调用,这不提供R检查中断的机会。

    在这种情况下,唯一的选择是强制终止R进程——希望这在RStudio的未来迭代中会有所改变



    编辑:rstudiov1.2现在应该可以更好地处理这些上下文中的中断。

    当R在R中不工作并且正在调用外部库调用时,可能会发生这种情况。唯一的选项是关闭“项目”窗口。幸运的是,在再次打开RStudio时,包括对象在内的未保存更改将被保留

    它偶尔会变得功能失调……我认为这可能并不罕见。我已经在Mac、PC和Linux机器上实现了。我使用任务管理器在重新启动之前将其清除。这是否意味着它将尽早停止,或者根本不会停止?例如,如果我试图在R执行C/C++库调用时停止R,它会在完成后立即停止,还是会继续完成它所完成的任何其他任务?如果是前者,那似乎是世界上最糟糕的,因为不可阻挡的组件可能是时间最长的部分-因此,如果你按下停止键,它不工作,你可能会等待几乎与让它运行一样多的时间-但没有得到输出。一旦R事件循环有机会运行,它就会停止,并发现已设置中断标志。我同意这一点也不理想:-/不幸的是,许多R代码实际上是C或Fortran代码,Ctrl+C通常不起作用。甚至像使用rect()绘制单个矩形这样的操作都会调用C代码,并且无法停止。这是一个严重的设计限制。