F
Flutter. Много
@flutter_amiga3.0K подп.
1.4Kпросмотров
46.7%от подписчиков
12 февраля 2026 г.
📷 ФотоScore: 1.5K
Hola, Amigos! Async/await и Isolate оба помогают держать UI плавным, но решают разные задачи. Сегодня обсудим, что и в каких ситуациях лучше использовать. Неправильно: async/await для CPU-тяжелой задачи Future<String> processBigData() async { final raw = await fetchHugeJson(); // ← I/O — ок final data = jsonDecode(raw); // ← блокирует UI ~1с final result = heavyMath(data); // ← ещё ~1с return result; } Правильно и просто: compute() import 'package:flutter/foundation.dart'; Future<String> processBigData() async { final raw = await fetchHugeJson(); // сеть — ок return compute(_heavyWork, raw); // ← выполняется в Isolate } String _heavyWork(String json) { final data = jsonDecode(json); return heavyMath(data); } Когда нужен полный контроль, подойдет Raw Isolate Future<void> startWorker() async { final receivePort = ReceivePort(); isolate = await Isolate.spawn(_worker, receivePort.sendPort); sendPort = await receivePort.first as SendPort; } Future<String> doHeavyTask(String input) async { final response = ReceivePort(); sendPort.send([input, response.sendPort]); return await response.first as String; } static void _worker(SendPort mainPort) async { final port = ReceivePort(); mainPort.send(port.sendPort); await for (final msg in port) { final input = msg[0] as String; final replyTo = msg[1] as SendPort; replyTo.send("processed: &#036;input"); // heavy work here } } Разберем по ситуации: - Блокирует main thread > ~300 мс → compute() - Просто ждет (network/db) → async/await - Нужен worker с диалогом → raw Isolate А ты пользуешься Isolate/compute или решаешь через async/await? Делись опытом ⚙️
1.4K
просмотров
1749
символов
Нет
эмодзи
Да
медиа

Другие посты @flutter_amiga

Все посты канала →
Hola, Amigos! Async/await и Isolate оба помогают держать UI — @flutter_amiga | PostSniper