【发布时间】:2020-10-30 13:05:00
【问题描述】:
在默认示例应用程序中,每当您创建新的 fultter 项目时,我只是添加了以下代码。
initState() {
super.initState();
loop();
}
loop() async {
while (true) {
await Future.delayed(Duration(milliseconds: 10));
print("count now:$_counter");
}
}
-
为什么应用程序 UI 没有被阻止?我可以单击 + 按钮,并且计数器平稳增加。即使我将延迟更改为 10 秒,UI 也是响应式的。 loop() 是否在不同的线程中运行?但我知道飞镖是单线程的。怎么可能?
-
循环函数在哪里运行?
-
我可以使用这种技术来运行后台任务,例如检查 id 我的 sqflite 表行是否与云同步等???
【问题讨论】:
-
3)。不,尝试用简单的“等待”以外的东西来占用 CPU,你会看到不同的
-
await只是在Future上注册完成回调的语法糖。
标签: multithreading flutter dart async-await