Как стать автором
Обновить

Комментарии 4

В одной статье даже прочитал, что Dart обладает некоей чудесной асинхронностью, которая позволяет отложить выполнения кода, до тех пор, пока поток не будет посвободнее (что на мой взгляд вводит немного в заблуждение).
Во Flutter есть такой механизм

  var _receivePort = ReceivePort();
  var _isolate = Isolate.spawn(_heavyComput, _receivePort.sendPort);
Лучше не использовать такие примеры, так как некоторые могут воспринять это как отличный вариант и будут спавнить кучу ненужных изолятов
Используйте функцию compute
Про scheduleTask — отличное дополнение. А про compute/isolate — ни в коем случае не призываю использовать примеры кода отсюда в качестве образцов.
Я не настоящий сварщик только поглядываю на dart/flutter. Но правильно я понимаю, что вы синхронно ушли в цикл, и всё встало. А потом убрали цикл в другой isolate (поток) и всё заработало. Это же тривиально. Или это просто только для тех у кого JavaScript головного мозга, как у меня?
Да — все тривиально. На глубину данная заметка не претендует. «Ушел в цикл» в асинхронной функции и всё «встало».
Просто, как и писал в начале, столкнулся с тем, что по-началу многие разработчики слишком много надежд возлагают на асинхронные функции и ждут от них, того, чего не стоит.
И, буквально, на следующий день появилась с технической точки зрения гораздо более глубокая статья — habr.com/ru/company/ligastavok/blog/539782 — достаточно интересно почитать. И вот еще интересная статья «по-теме» — habr.com/ru/post/532862.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории