Isolate.spawn
- Dart kursu
- İleri seviye
- Ders 2/83
- 5 dk
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
import 'dart:isolate';
void main() {
// async yap ve Isolate.run ile 6*7 hesaplat
}Örnek çözüm
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
Future<____> IsolateSpawnFunction() => Isolate.spawn(entry, args);
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ı |