在 for 循环中生成隔离并在 Dart 中并行处理
Spawning Isolates in for loop and processing parallelly in Dart
for(int i=0;i<2;i++){
..............preprocessing(pr)...........
..... = await someFunc(someData[i]) (this line spawns off new Isolate)
..............postprocessing(po)..........
}
我正在用 dart 编写这种函数,我希望得到这个顺序 pr0 -->someFunc(data[0]) --> pr1 --> someFunc(data[1]) -- > post 处理哪个(隔离先完成)。但我知道我无法使用 for 循环获得相同的效果。它给我的顺序是 pr0 --> someFunc(data[0]) --> pr1 --> someFunc(data[1]) --> po0 --> po1。
应该怎么实现才能达到上面的效果
提前致谢。
您可以尝试使用 Future.wait
代替 (https://api.dart.dev/stable/2.16.1/dart-async/Future/wait.html)。
final results = await Future.wait([
for (int i = 0; i < 2; i++) someFunc(someData[i]),
]);
for(int i=0;i<2;i++){
..............preprocessing(pr)...........
..... = await someFunc(someData[i]) (this line spawns off new Isolate)
..............postprocessing(po)..........
}
我正在用 dart 编写这种函数,我希望得到这个顺序 pr0 -->someFunc(data[0]) --> pr1 --> someFunc(data[1]) -- > post 处理哪个(隔离先完成)。但我知道我无法使用 for 循环获得相同的效果。它给我的顺序是 pr0 --> someFunc(data[0]) --> pr1 --> someFunc(data[1]) --> po0 --> po1。 应该怎么实现才能达到上面的效果
提前致谢。
您可以尝试使用 Future.wait
代替 (https://api.dart.dev/stable/2.16.1/dart-async/Future/wait.html)。
final results = await Future.wait([
for (int i = 0; i < 2; i++) someFunc(someData[i]),
]);