0Pricing
Dart Academy · Lektion

Isolate.run für schnelles Auslagern

Führen Sie eine Funktion außerhalb des Haupt-Isolates aus

Isolate.run für schnelles Auslagern ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Der einfache Einstieg

Isolates manuell zu starten, ist umständlich. Isolate.run ist die einfachste Möglichkeit, eine einzelne aufwendige Aufgabe aus dem Main-Isolate auszulagern. 🚀

Was es tut

Isolate.run startet ein neues Isolate, führt dort Ihre Funktion aus, gibt das Ergebnis zurück und beendet das Isolate anschließend für Sie.

Es gibt ein Future zurück

Da die Arbeit an einem anderen Ort ausgeführt wird, gibt Ihnen Isolate.run ein Future zurück. Sie verwenden await dafür wie bei jedem anderen asynchronen Aufruf.

Future<int> sumIt() => Isolate.run(() {
  var total = 0;
  for (var i = 0; i < 1000000; i++) total += i;
  return total;
});

Auf das Ergebnis warten

Rufen Sie die Funktion auf und verwenden Sie await für das Ergebnis. Das Main-Isolate bleibt frei, sodass Ihre Benutzeroberfläche flüssig bleibt, während die Berechnung läuft.

final result = await Isolate.run(heavyTask);
print(result);

Eine Top-Level-Funktion übergeben

Die auszuführende Aufgabe sollte eine Top-Level- oder statische Funktion oder eine einfache Closure sein. Dadurch kann sie sicher an das neue Isolate übergeben werden.

Erfasste Werte mit Bedacht verwenden

Jeder Wert, den eine Closure erfasst, wird in das neue Isolate kopiert. Halten Sie erfasste Daten klein und vermeiden Sie nicht übertragbare Dinge wie Sockets.

Eingaben übergeben

Sie benötigen Eingaben? Erfassen Sie sie in der Closure oder übergeben Sie sie als Parameter. Dart kopiert sie beim Übertragen, sodass das Isolate mit seiner eigenen Version arbeitet.

final big = await Isolate.run(() => parseJson(rawText));

Ergebnisse zurückerhalten

Was auch immer Ihre Funktion zurückgibt, wird zum Wert des Future. Dieser wird automatisch zurück in das Main-Isolate kopiert.

Fehler werden weitergegeben

Wenn die Arbeit einen Fehler auslöst, wird das Future abgelehnt. Schließen Sie Ihr await in try/catch ein, um Fehler direkt an der Aufrufstelle zu behandeln.

try {
  final r = await Isolate.run(risky);
} catch (e) {
  print('failed: $e');
}

Kosten des Starts

Jeder Aufruf von Isolate.run startet und beendet ein Isolate. Das verursacht einen gewissen Aufwand, daher lohnt es sich für wirklich aufwendige Arbeiten, nicht für winzige Aufgaben.

Wann es passt

Greifen Sie zu Isolate.run, wenn Sie eine einzelne umfangreiche, in sich geschlossene Aufgabe haben. Für einen fortlaufenden Austausch in beide Richtungen eignen sich vollständige Isolates besser.

Schnelltest

Was gibt Ihnen Isolate.run zurück?

Zusammenfassung

Isolate.run lagert eine einzelne aufwendige Funktion aus, wartet auf ihr Future, kopiert das Ergebnis zurück und räumt anschließend auf. Der einfachste Weg zu Parallelität. ✅

Häufig gestellte Fragen

Ist die Lektion „Isolate.run für schnelles Auslagern“ kostenlos?

Ja — der vollständige Text von „Isolate.run für schnelles Auslagern“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Isolate.run für schnelles Auslagern“?

Führen Sie eine Funktion außerhalb des Haupt-Isolates aus Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Dart Academy zu starten?

Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Isolate.run für schnelles Auslagern“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?

Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum Isolates statt Threads
  2. Isolate.run für schnelles Auslagern
  3. Isolates erzeugen und Nachrichtenübermittlung
  4. Rechenintensive Aufgaben ohne Ruckeln
← Zurück zu Dart Academy