【发布时间】:2019-10-09 06:09:18
【问题描述】:
我有这个流应该处理细分为帧的繁重工作负载:
Stream<int> _test() async* {
for(int i = 0; i < 50; i++){
///Heavy workload simulation
for(int x = 0; x < 100000; x++){
double _r = Random().nextDouble();
}
print(i);
yield i;
}
}
然后我使用 StreamBuilder 显示一个简单的指标:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
children: <Widget>[
StreamBuilder<int>(
stream: _test(),
initialData: 0,
builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
return Text(
'${snapshot.data}',
);
},
),
RaisedButton(onPressed: () {_test();})
],
),
),
);
}
但是当我执行代码时,i 的所有值(从 0 到 49)都会有一点延迟打印,所以_test 流不是即时的。但是 UI 只在 49 处更新,所以当流结束时。
我做错了吗?
【问题讨论】:
标签: user-interface dart flutter stream