CodeBlanks Logo Icon CodeBlanks

Isolate.spawn

Isolate.spawn ile yeni isolate öğrenirsin.

Isolate.spawn imzası

Isolate.spawn, yeni bir isolate zamanlar ve Future<void> döndürür. Çağrı, isolate başlatıldığında tamamlanır — işin bitmesini beklemez.

İlk parametre void Function(List<String>) türünde entryPoint'tir. İkinci parametre List<String> türünde mesaj listesidir; genellikle ilk eleman bir SendPort olur.

Örnek: await Isolate.spawn(worker, ['veri']);. await kullanırsan isolate'in başlatılmasını beklersin; kullanmazsan ana isolate hemen devam eder.

spawn ile veri aktarımı

spawn'a ikinci parametre olarak verilen liste, isolate'e kopyalanarak aktarılır. Listedeki her öğe seri açıklanabilir (primitive, SendPort, List, Map) olmalıdır.

İlk öğeyi SendPort yapmak yaygın bir desendir: Isolate.spawn(worker, [port.sendPort, 'görev-1']). Böylece isolate iş bitince sonuçu bu porta gönderir.

Dikkat: closure değişkeni aktarılamaz. entryPoint yalnızca parametre listesini okuyabilir.

Uygulama Isolate.run ile tek sonuç al

main fonksiyonunu async yap. var result = await Isolate.run(() => 6 * 7); satırını ekle ve print(result); ile yazdır.

Başlangıç kodu

main.dart
import 'dart:isolate';

void main() {
  // async yap ve Isolate.run ile 6*7 hesaplat
}

Örnek çözüm

main.dart
import 'dart:isolate';

void main() async {
  var result = await Isolate.run(() => 6 * 7);
  print(result);
}

Beklenen çıktı

42

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 spawn dönüş tipi

Soru
Future<____> IsolateSpawnFunction() => Isolate.spawn(entry, args);
Cevap
Future<void> IsolateSpawnFunction() => Isolate.spawn(entry, args);

Açıklama: Isolate.spawn Future<void> döndürür.

2 Isolate.spawn'ın dönüş tipi nedir?

  • void
  • Future<void> Doğru cevap
  • Stream<void>
  • Isolate

Açıklama: spawn Future<void> döndürür — isolate başlatılınca tamamlanır.

3 spawn parçalarını eşleştir

Kavram Anlamı
Future<void> spawn dönüş tipi
entryPoint Çalışacak fonksiyon
List<String> Mesaj listesi
SendPort Geri dönüş kanalı

İleri seviye bölümündeki tüm dersler