Isolate.run pour déléguer rapidement
Exécuter une fonction hors de l’isolate principal
Isolate.run pour déléguer rapidement est une leçon Dart Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.
La solution la plus simple
Créer des isolate manuellement est délicat. Isolate.run est la manière la plus simple de déplacer une tâche lourde hors de l’isolate principal. 🚀
Ce qu’il fait
Isolate.run démarre un nouvel isolate, y exécute votre fonction, renvoie le résultat, puis arrête l’isolate pour vous.
Il renvoie un Future
Comme le travail s’effectue ailleurs, Isolate.run vous fournit un Future. Vous l’attendez comme n’importe quel autre appel asynchrone.
Future<int> sumIt() => Isolate.run(() {
var total = 0;
for (var i = 0; i < 1000000; i++) total += i;
return total;
});Attendre le résultat
Appelez-le et utilisez await pour attendre la réponse. L’isolate principal reste libre afin de garder votre interface fluide pendant les calculs.
final result = await Isolate.run(heavyTask);
print(result);Transmettre une fonction de niveau supérieur
La tâche exécutée doit être une fonction de niveau supérieur ou statique, ou une fermeture simple. Cela permet de l’envoyer en toute sécurité au nouvel isolate.
Capturer avec précaution
Chaque valeur qu’une fermeture capture est copiée vers le nouvel isolate. Gardez les données capturées petites et exemptes d’éléments impossibles à envoyer, comme les sockets.
Transmettre les entrées
Vous avez besoin d’entrées ? Capturez-les dans la fermeture ou transmettez-les comme arguments. Dart les copie lors du transfert, de sorte que l’isolate travaille sur sa propre version.
final big = await Isolate.run(() => parseJson(rawText));Récupérer les résultats
Tout ce que renvoie votre fonction devient la valeur du Future. Cette valeur est automatiquement recopiée vers l’isolate principal.
Les erreurs remontent
Si le travail lève une erreur, le Future est rejeté. Entourez votre await d’un bloc try/catch pour gérer les échecs directement à l’endroit de l’appel.
try {
final r = await Isolate.run(risky);
} catch (e) {
print('failed: $e');
}Le coût du démarrage
Chaque appel à Isolate.run démarre puis arrête un isolate. Cela entraîne une surcharge : cette solution est donc rentable pour un travail réellement lourd, pas pour de minuscules tâches.
Quand l’utiliser
Utilisez Isolate.run lorsqu’une seule tâche importante et autonome vous attend. Pour des échanges continus dans les deux sens, les isolates complets conviennent mieux.
Vérification rapide
Que vous renvoie Isolate.run ?
Récapitulatif
Isolate.run déporte une fonction lourde, attend son Future, recopie le résultat, puis s’occupe du nettoyage. C’est le chemin le plus simple vers le parallélisme. ✅
Questions Fréquemment Posées
La leçon « Isolate.run pour déléguer rapidement » est-elle gratuite ?
Oui — le texte complet de « Isolate.run pour déléguer rapidement » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Isolate.run pour déléguer rapidement » ?
Exécuter une fonction hors de l’isolate principal Tu pratiques Dart Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Dart Academy ?
Aucune expérience préalable n'est requise. Dart Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Isolate.run pour déléguer rapidement » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Dart Academy ?
Oui. Chaque leçon Dart Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pourquoi des isolates plutôt que des threads
- Isolate.run pour déléguer rapidement
- Créer des isolates et transmettre des messages
- Tâches gourmandes en calcul sans saccades