我相信你所需要做的就是
earlySignal = TRUE
如下所示:
g = function()
{
future::plan(future::multiprocess, earlySignal = TRUE, workers = 4)
x = vector("list", 100)
for(i in 1:100)
{
x[[i]] = future::future(
{
u = runif(1, 0, 100)
if (u > 80)
stop("Error")
return(u)
})
cat(sprintf("\rProgress: %g%%", i, file = stderr()))
}
return(future::values(x))
}
g()