Как запустить несколько загрузок одновременно во Flutter? - PullRequest
1 голос
/ 01 ноября 2019

В очереди есть список функций, где каждая функция загружает файл. Любые идеи о том, как я могу изначально запустить 3 одновременных функции одновременно, и после завершения любой из этих загрузок / функций завершается, мы хотим запустить следующие загрузки / функции в очереди. Одновременно будет выполнено максимум 3 загрузки / функции.

Я пробовал это, но это не дает мне результата. Я думаю, что это петля замораживает экран.

    static void startBackgroundProcess(Iterable<dynamic> iterable, Future<bool> Function(Order) function) async {
    Iterable<dynamic> _iterable = iterable;
    int lenght = iterable?.length ?? 0;
    List<dynamic> queue = [];
    int active = 0;
    int curr = 0;
    int upper = 1;
    _iterable.forEach((i) {
      queue.add(i);
    });
    while (queue.isNotEmpty) {
      if (active < 3) {
        active++;
        function(queue[0]).then((x) {
          queue.removeAt(0);
          active--;
        });
        active++;
        function(queue[1]).then((x) {
          queue.removeAt(1);
          active--;
        });
        active++;
        function(queue[2]).then((x) {
          queue.removeAt(2);
          active--;
        });
      }
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...