CodeBlanks Logo Icon CodeBlanks

scheduleMicrotask

scheduleMicrotask ile mikro görev öğrenirsin.

scheduleMicrotask fonksiyonu

scheduleMicrotask(fn), fn'i microtask kuyruğuna ekler. Geriye değer döndürmez; sıralama garantisi verir ama sonuç beklemez.

Future.microtask'tan farkı: Future döndürmez. Sadece yan etkileri (print, durum güncelleme) olan küçük işler içindir.

Örnek: scheduleMicrotask(() => print('micro'));. Bu satırdan sonra senkron kod devam eder; microtask tür sonunda işlenir.

microtask vs event sırası

Bir turda önce tüm microtask'ler bitirilir, sonra bir event işlenir. Bu yüzden scheduleMicrotask ile eklenen iş, Future.delayed'dan önce çalışır.

Örnek: scheduleMicrotask(() => print('m')); print('ana'); await Future.delayed(Duration(milliseconds: 1));. Sıra: 'ana' (senkron), 'm' (microtask türü), sonra delayed event tamamlanır.

Çıktı deterministiktir: 'ana', 'm'.

Uygulama microtask vs event sırasını gözle

main'i async yap. scheduleMicrotask(() => print('m')); ekle. print('ana'); ekle. await Future.delayed(Duration(milliseconds: 1)); ekle.

Başlangıç kodu

main.dart
void main() {
  // async yap; microtask ile 'm' zamanla; 'ana' yazdır; 1 ms bekle
}

Örnek çözüm

main.dart
void main() async {
  scheduleMicrotask(() => print('m'));
  print('ana');
  await Future.delayed(Duration(milliseconds: 1));
}

Beklenen çıktı

ana
m

Soru ve cevaplar

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

1 scheduleMicrotask ne döndürür?

  • Future<void>
  • Hiçbir şey (void) Doğru cevap
  • Bir değer
  • Stream

Açıklama: scheduleMicrotask void döndürür, Future beklemez.

2 Zamanlama fonksiyonları

Kavram Anlamı
scheduleMicrotask Microtask kuyruğu
Future.microtask Future döndürür
Future.delayed Event kuyruğu
Future.sync Hemen çağırır

3 Microtask çağrısı

Soru
____(() => print('m'));
Cevap
scheduleMicrotask(() => print('m'));

Açıklama: scheduleMicrotask fonksiyonu microtask kuyruğuna ekler.

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