【发布时间】:2021-08-05 04:50:48
【问题描述】:
我需要将图像列表上传到存储中,但我不想上传并等待每一张图片,因为这需要相当长的时间。 我想同时上传它们,就像在不同的线程中一样。 有一种方法可以使用标准飞镖异步实现多线程吗?还是我应该使用隔离物? 你有一些示例代码吗?
【问题讨论】:
标签: flutter asynchronous file-upload upload dart-isolates
我需要将图像列表上传到存储中,但我不想上传并等待每一张图片,因为这需要相当长的时间。 我想同时上传它们,就像在不同的线程中一样。 有一种方法可以使用标准飞镖异步实现多线程吗?还是我应该使用隔离物? 你有一些示例代码吗?
【问题讨论】:
标签: flutter asynchronous file-upload upload dart-isolates
你可以在一个未来使用它们
final results = await Future.wait([
uploadFunction(image1)
uploadFunction(image2)
]);
您可以开始上传所有图片,而无需等待上一张完成,一旦两次上传完成,将返回 await
【讨论】:
您可以使用Queue
它会做什么它会保持你的动作,你可以在上传图片的同时做其他任务
import 'package:dart_queue/dart_queue.dart';
main() async {
final queue = Queue(parallel: 2);
final result1 = await queue.add(()=>Future.delayed(Duration(milliseconds: 10)));
final result2 = await queue.add(()=>Future.delayed(Duration(milliseconds: 10)));
//Thats it!
}
通过使用这个你不需要添加await。
注意:确保此队列处于活动状态时应用正在运行。
【讨论】: