Isolate.run para delegar tareas rápidamente
Ejecute una función fuera del isolate principal
Isolate.run para delegar tareas rápidamente es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.
La forma sencilla de empezar
Crear isolates manualmente resulta engorroso. Isolate.run es la forma más sencilla de sacar una tarea pesada del isolate principal. 🚀
Qué hace
Isolate.run inicia un isolate nuevo, ejecuta allí su función, devuelve el resultado y cierra el isolate por usted.
Devuelve un Future
Como el trabajo ocurre en otro lugar, Isolate.run le devuelve un Future. Puede esperarlo igual que cualquier otra llamada async.
Future<int> sumIt() => Isolate.run(() {
var total = 0;
for (var i = 0; i < 1000000; i++) total += i;
return total;
});Esperar el resultado
Llámelo y use await para esperar la respuesta. El isolate principal queda libre para mantener fluida la interfaz mientras se realizan los cálculos.
final result = await Isolate.run(heavyTask);
print(result);Pasar una función de nivel superior
El trabajo que ejecute debe ser una función de nivel top-level o estática, o un closure sencillo. Así se puede enviar de forma segura al isolate nuevo.
Capturar con cuidado
Cualquier valor que un closure captures se copia al isolate nuevo. Mantenga pequeños los datos capturados y evite elementos que no se puedan enviar, como los sockets.
Enviar las entradas
¿Necesita entradas? Captúrelas en el closure o páselas como argumentos. Dart las copies, por lo que el isolate trabaja con su propia versión.
final big = await Isolate.run(() => parseJson(rawText));Obtener los resultados
Lo que devuelva su función se convierte en el Future's value. Se copia automáticamente de vuelta al isolate principal.
Los errores se propagan
Si el trabajo lanza una excepción, el Future rejects. Envuelva el await en try/catch para gestionar los errores justo donde realizó la llamada.
try {
final r = await Isolate.run(risky);
} catch (e) {
print('failed: $e');
}El coste de iniciar
Cada Isolate.run inicia y cierra un isolate. Esto tiene un coste adicional, por lo que compensa para trabajos realmente pesados, no para tareas pequeñas.
Cuándo usarlo
Use Isolate.run cuando tenga una tarea grande y autónoma. Para una comunicación bidireccional continua, los isolates completos son más adecuados.
Comprobación rápida
¿Qué le devuelve Isolate.run?
Resumen
Isolate.run delega una función pesada, espera su Future, copia el resultado de vuelta y se limpia. Es el camino más sencillo hacia el paralelismo. ✅
Preguntas frecuentes
¿La lección «Isolate.run para delegar tareas rápidamente» es gratis?
Sí — el texto completo de «Isolate.run para delegar tareas rápidamente» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Isolate.run para delegar tareas rápidamente»?
Ejecute una función fuera del isolate principal Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Dart Academy?
No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Isolate.run para delegar tareas rápidamente»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Dart Academy?
Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué isolates en lugar de threads
- Isolate.run para delegar tareas rápidamente
- Creación de isolates y paso de mensajes
- Tareas de cálculo intensivo sin tirones