我在Scala中使用处理(虽然我认为这与我的问题无关)。
我正在循环中构建一个searchtree,直到找到有效路径。这可能需要几秒钟,我想在构建树时绘制树的图形表示,以便用户可以看到正在发生的事情。
我尝试通过在循环中调用redraw()
来解决这个问题,但这不起作用。我猜是因为redraw()
不会强制重绘,而只会设置一个标记,重绘应该完成。
那么有什么方法可以强制重绘,或者你通常如何解决这个问题呢?
答案 0 :(得分:2)
@George Profenza的评论是正确的。处理任务都发生在动画线程上。您在draw()中执行的任何任务都将锁定该线程,直到它们完成。如果要在执行任务时更新屏幕,请在单独的线程上运行任务(超出Processing API的范围,您必须使用Java),或者将任务分解为段并让绘制()方法在每个段的末尾返回,以便PApplet可以渲染到屏幕。