【问题标题】:Flutter simultaneous images uploadFlutter 同步图片上传
【发布时间】:2021-08-05 04:50:48
【问题描述】:

我需要将图像列表上传到存储中,但我不想上传并等待每一张图片,因为这需要相当长的时间。 我想同时上传它们,就像在不同的线程中一样。 有一种方法可以使用标准飞镖异步实现多线程吗?还是我应该使用隔离物? 你有一些示例代码吗?

【问题讨论】:

    标签: flutter asynchronous file-upload upload dart-isolates


    【解决方案1】:

    你可以在一个未来使用它们

    final results = await Future.wait([
      uploadFunction(image1)
      uploadFunction(image2)
    
    ]);
    

    您可以开始上传所有图片,而无需等待上一张完成,一旦两次上传完成,将返回 await

    【讨论】:

      【解决方案2】:

      您可以使用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

      注意:确保此队列处于活动状态时应用正在运行。

      【讨论】:

      • 似乎这个库只允许我将期货排队并一个接一个地执行,它不会同时执行它们。我错了吗?
      • 是的,您是对的,但是对于图像上传,我建议您使用它来避免等待。
      • 抱歉,我认为这对我没有帮助。我需要等待上传,但我想通过使用不同线程同时上传来加快进程。
      • 好的,继续增长!
      猜你喜欢
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2020-08-14
      • 2019-11-25
      相关资源
      最近更新 更多