CodeBlanks Logo Icon CodeBlanks

async metot tanımlama

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

async metot tanımlamayı ve await ile beklemeyi öğrenirsin.

async metot tanımlama

Bir async metot, bildirimin başına async anahtar kelimesi konularak tanımlanır: static async Task Show(). Gövdede await kullanabilirsin; bu, metodu bekleyenlerden ayrı bir akışta çalıştırır.

Sonuç döndürmeyecek async metotlar Task, değer döndürecekler Task<T> döndürür. void döndüren async metotlardan kaçın; yalnızca olay işleyiciler için kullanılırlar.

async Task Main

C# 7.1'den beri Main metodu async Task olarak bildirilebilir. Bu, programın giriş noktasında doğrudan await kullanmanı sağlar; GetAwaiter().GetResult() gibi sarmalayıcılara gerek kalmaz.

Bildirim: static async Task Main(). await ile çağrılan herhangi bir async metot buradan doğrudan beklenir. Bu, konsol uygulamalarında async denemek için en temiz yoldur.

Uygulama async metot ve async Main

static async Task<string> GetName() metodunu tanımla. Gövdede await Task.CompletedTask ve return "Ayşe"; yaz. Main'i static async Task Main yap; await GetName() ile sonucu al ve Console.WriteLine ile yazdır.

Örnek çözümü göster
Gövdede await Task.CompletedTask ve return "Ayşe" yaz. Main'i static async Task Main() yapıp string name = await GetName(); Console.WriteLine(name);
Örnek çözüm:
using System;
using System.Threading.Tasks;

class Program
{
    static async Task<string> GetName()
    {
        await Task.CompletedTask;
        return "Ayşe";
    }

    static async Task Main()
    {
        string name = await GetName();
        Console.WriteLine(name);
    }
}

Kendini test et

  1. async metotlar için önerilen dönüş türü nedir?

    • Task veya Task<T>
    • void
    • Thread
    • IEnumerable<T>
    Cevabı göster

    Task veya Task<T> — Doğru. async metotlar Task ya da Task<T> döndürmelidir.

  2. async bildirimi tamamla

    static ____ Task Show() { await Task.CompletedTask; }
    Cevabı göster
    static async Task Show() { await Task.CompletedTask; }
  3. async void ne zaman kullanılır?

    • Her zaman; async metotlar void döndürmeli
    • Yalnızca olay işleyicilerde
    • Asla; geçerli değil
    • Yalnızca test metotlarında
    Cevabı göster

    Yalnızca olay işleyicilerde — Doğru. async void yalnızca olay işleyiciler içindir.

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