Isolate.run para descarregamento rápido
Execute uma função fora do isolate principal.
Isolate.run para descarregamento rápido é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.
A porta de entrada mais simples
Criar isolados manualmente é trabalhoso. Isolate.run é a maneira mais simples de executar um trabalho pesado fora do isolado principal. 🚀
O que ele faz
Isolate.run inicia um isolado novo, executa sua função nele, retorna o resultado e encerra o isolado para você.
Ele retorna um Future
Como o trabalho acontece em outro lugar, Isolate.run fornece um Future. Você pode usar await nele como em qualquer outra chamada assíncrona.
Future<int> sumIt() => Isolate.run(() {
var total = 0;
for (var i = 0; i < 1000000; i++) total += i;
return total;
});Aguarde o resultado
Chame-o e use await para aguardar a resposta. O isolado principal fica livre para manter sua interface fluida enquanto os cálculos são executados.
final result = await Isolate.run(heavyTask);
print(result);Passe uma função de nível superior
O trabalho executado deve ser uma função de nível superior ou estática, ou um closure simples. Isso facilita enviá-lo com segurança para o novo isolado.
Capture com cuidado
Qualquer valor que um closure capture será copiado para o novo isolado. Mantenha os dados capturados pequenos e livres de itens que não podem ser enviados, como sockets.
Envie as entradas
Precisa de entradas? Capture-as no closure ou passe-as por parâmetro. O Dart as copia para o outro lado, então o isolado trabalha com sua própria versão.
final big = await Isolate.run(() => parseJson(rawText));Obtenha os resultados
O que quer que sua função retorne se torna o valor do Future. Ele é copiado automaticamente de volta para o isolado principal.
Os erros são propagados
Se o trabalho lançar uma exceção, o Future será rejeitado. Envolva seu await em try/catch para tratar as falhas exatamente no ponto em que você fez a chamada.
try {
final r = await Isolate.run(risky);
} catch (e) {
print('failed: $e');
}Custo da inicialização
Cada Isolate.run inicia e encerra um isolado. Isso gera sobrecarga; portanto, vale a pena para trabalhos realmente pesados, não para tarefas pequenas.
Quando Usar
Escolha Isolate.run quando tiver uma tarefa única, grande e independente. Para uma comunicação contínua nos dois sentidos, os isolados completos são mais adequados.
Verificação Rápida
O que Isolate.run devolve?
Recapitulação
Isolate.run transfere uma função pesada para outro isolado, aguarda o Future, copia o resultado de volta e faz a limpeza. É o caminho mais simples para obter paralelismo. ✅
Perguntas Frequentes
A aula “Isolate.run para descarregamento rápido” é grátis?
Sim — o texto completo de “Isolate.run para descarregamento rápido” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.
O que vou aprender em “Isolate.run para descarregamento rápido”?
Execute uma função fora do isolate principal. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Dart Academy?
Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Isolate.run para descarregamento rápido”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Dart Academy?
Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Por que isolates, não threads
- Isolate.run para descarregamento rápido
- Criação de Isolates e Passagem de Mensagens
- Tarefas com Uso Intenso de Computação sem Travamentos