CodeBlanks Logo Icon CodeBlanks

async/await nedir?

C# kursu · İleri seviye · Ders 1/83

async ve await anahtar kelimelerinin nasıl çalıştığını öğrenirsin.

async/await nedir?

async/await, C#'ta uzun süren işleri beklerken iş parçacığını bloklamadan çalıştırmanın yoludur. Bir metodu async ile işaretlersin; gövdede await ile bir Task'ın bitmesini beklersin.

Bekleme sırasında iş parçacığı serbest kalır; başka işler yapabilir. İş bitince çalışma zamanı seni beklediğin yerden devam ettirir. Bu, kullanıcı arayüzü donmadan ağ ve dosya işlemleri yapmayı sağlar.

Senkron ve asenkron akış

Senkron kod her satırı sırayla çalıştırır; bir işlem bitmeden sıradakine geçilmez. Asenkron kod ise bir Task'ı başlatır, beklerken başka işe geçer, iş bitince geri döner.

Örnek: bir web sayfası indirirken senkron kod bekler, kullanıcı arayüzü donar. Asenkron kod ise beklerken başka istek yanıtlanabilir; bu yüzden modern uygulamalar asenkron tasarlanır.

Uygulama async Greet metodunu tanımla

Bir async Task<string> Greet() metodu tanımla. Gövdede await Task.CompletedTask çağırıp "Merhaba" döndür. Main'de await Greet() ile sonucu al ve Console.WriteLine ile yazdır.

Örnek çözümü göster
async Task<string> Greet() tanımla; gövdede await Task.CompletedTask ve return "Merhaba" yaz. Main'de string msg = await Greet(); Console.WriteLine(msg);
Örnek çözüm:
using System;
using System.Threading.Tasks;

class Program
{
    static async Task<string> Greet()
    {
        await Task.CompletedTask;
        return "Merhaba";
    }

    static async Task Main()
    {
        string msg = await Greet();
        Console.WriteLine(msg);
    }
}

Kendini test et

  1. Hangi anahtar kelime await kullanılabilen metodu işaretler?

    • static
    • async
    • await
    • Task
    Cevabı göster

    async — Doğru. async ile işaretlenen metodun gövdesinde await kullanılabilir.

  2. async metodunu tamamla

    static ____ Task Hello() { return Task.CompletedTask; }
    Cevabı göster
    static async Task Hello() { return Task.CompletedTask; }
  3. await ne yapar?

    • Metodu hemen sonlandırır
    • Yeni bir iş parçacığı başlatır
    • Task tamamlanana dek bekleyip sonucu verir
    • Task'i iptal eder
    Cevabı göster

    Task tamamlanana dek bekleyip sonucu verir — Doğru. await Task bitene dek bekler ve sonucunu döndürür.

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