在dart语言中是否有类似于Visual Basic中的DoEvents()的方法?

时间:2013-12-05 23:26:41

标签: dart doevents

这是一个简单的问题。 假设我有一个很长的循环来执行,那么让用户了解正在进行的操作会很好吗?我会打印例如到目前为止已执行的循环数以及剩余的循环数。 我遇到的问题是,在循环结束之前,这些输出将无法显示,因此无法显示它们。 我确信在dart中有一些方法可以为浏览器提供某种处理程序,以便在我想要的时候执行任务和事件并继续运行循环。 我是dart的新手,我希望有人可以回答这个问题。 谢谢。

PS:如果你不知道怎么做,你可以给我任何关于我可以用来在dart文档中查找这个特定功能的关键字的想法,这将非常有帮助。

2 个答案:

答案 0 :(得分:4)

您可以深入了解Isolates,它允许在支持的浏览器上进行后台工作。

https://api.dartlang.org/docs/channels/stable/latest/dart_isolate.html

没有DoEvents()那么简单,但所有的部分都在那里。

答案 1 :(得分:1)

我认为Isolates是最好的方法,但不久之前在浏览器上使用它们并不成功,但最近在Isolates中有更大的重构。

有谁知道当前的客户端隔离示例? @kevmoo引用的API文档包含一个不再存在的Isolates文章的链接(可能由于上述重构而必须重写)。

另一种方法是在一大块工作之后返回并在循环中重复调用的方法,直到它返回为例如对于完成为真(对于尚未为假)。 当您使用scheduleMicrotask(doChunk)new Timer(() => doChunk())其他任务调用此方法时,每次实际调用该方法之前都会获得一些空气(import 'dart:async';)。