小编Tur*_*sla的帖子

为什么 Future 会阻塞 ui 但网络请求不会出现抖动

我知道 Future 将在事件队列中运行。但是事件队列也在主隔离上运行,如果我将来执行一些繁重的任务(例如,计算从 1 到 1000000 的总和),它将阻塞我的 ui 代码。 \n但是 Future 在网络操作不会阻塞UI(如await httpClient.getUrl(uri))。\n为什么使用future的网络请求需要几秒钟而不阻塞UI,而计算操作会阻塞UI\xef\xbc\x9f

\n\n
@override\nvoid initState() {\nsuper.initState();\nFuture((){\n  var result;\n  for (var i = 0; i < 1000000; ++i) {\n    result = 'result is $i';\n  }\n  print(result);\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

}

\n\n

如果我在 initState() 中使用 Future 执行一些繁重的任务,用户界面将被阻止。

\n

dart flutter

4
推荐指数
1
解决办法
1533
查看次数

标签 统计

dart ×1

flutter ×1