有关如何在R程序中创建循环计数器的一些信息性帖子.但是,在使用带有"foreach()"的并行化版本时,如何创建类似的功能?
我正在尝试添加一个gtkProgressBar我为R脚本创建的小接口(使用该RGtk2包).
如果我做一些简单的事情,如:
for (i in 1:50)
{
gtkProgressBarSetFraction(progress, i/50)
Sys.sleep(1)
}
Run Code Online (Sandbox Code Playgroud)
一切顺利,酒吧每秒更新一次.
但是,当我转到我的实际代码时,我有一个循环,我做了类似的事情
for(i in 1:1000)
{
gtkProgressBarSetFraction(progress, i/1000)
#do some heavy computation here
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是界面"冻结"并且进度条仅在循环结束时更新,因此完全击败其使用...
我在这里错过了什么吗?如何定期"唤醒"界面以使其刷新?
谢谢你尼科
编辑:好的,我解决了问题,但我仍然不明白发生了什么.我之后添加了一个Sys.sleep电话gtkProgressBarSetFraction,现在接口更新了.为了减少"浪费的时间",我刚才这样做了Sys.sleep(0.0001)(因此,对于1000个周期,我只有大约0.1-1秒的计算时间,这是可以接受的).任何人都可以解释为什么会这样?