C#'ta await anahtar kelimesi nasıl kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde await anahtar kelimesi, asenkron bir işlemin tamamlanmasını bloklamadan beklemek için kullanılır.
await kullanımı yalnızca async anahtar kelimesi ile işaretlenmiş asenkron metodlar içinde mümkündür.
İşlem await ifadesine ulaştığında, kontrol akışı çağırana geri döner ve metod "askıya alınır"; beklenen görev tamamlanana kadar. Görev tamamlandıktan sonra, metodun yürütülmesi durduğu yerden devam eder.
Bu, çağıran iş parçacığını (örneğin, kullanıcı arayüzü iş parçacığı veya web sunucusu iş parçacığı) diğer görevleri yerine getirmek üzere serbest bırakmaya olanak tanır, böylece uygulamanın yanıt verme kabiliyeti ve ölçeklenebilirliği artar.
public async Task<string> GetDataAsync()
{
// Uzun süren asenkron işlemin simülasyonu
await Task.Delay(2000);
return "Veri alındı";
}
public async Task ProcessDataAsync()
{
Console.WriteLine("İşleme başladı...");
string result = await GetDataAsync(); // GetDataAsync tamamlanmasını beklemeden devam eder
Console.WriteLine($"Sonuç: {result}");
Console.WriteLine("İşlem tamamlandı.");
}
await anahtar kelimesi şunlara uygulanabilir:
- Görevler (Task, Task<T>, ValueTask, ValueTask<T>): en yaygın senaryodur.
- beklenebilir tipler:
GetAwaiter()metoduna sahip nesneler,IsCompleted,GetResult()veOnCompleted()metodlarını içeren bir tür döndürür (devamı desteği için).
await kullanımı, asenkron kodu daha okunabilir ve senkron koda benzer hale getirir, böylece devam kodu yazma veya geri çağırma (callback) kullanma ihtiyacını ortadan kaldırır.