C#'ta asenkron yöntem nasıl çalışır?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde asenkron yöntem, uzun sürebilecek işlemleri (örneğin, giriş-çıkış, ağ istekleri) ana yürütme akışını engellemeden gerçekleştirmeye olanak tanır.
async anahtar kelimesi ile işaretlenmiş asenkron bir yöntem çağrıldığında, kontrol, asenkron işlemin tamamlanmasına kadar çağıran koda aktarılır. İşlem arka planda (örneğin, bir iş parçacığı havuzu veya sistem giriş-çıkış mekanizmaları kullanılarak) yürütülür.
Yöntem içindeki await anahtar kelimesi, asenkron işlemin nerede durdurulabileceğini gösterir. await'a ulaşan yürütme, çağıran koda geri döner ve beklenen işlem tamamlandığında yöntemin devamı planlanır.
Asenkron işlemin sonucu (veya istisna) daha sonra asenkron yöntemin devamına iletilir ve burada işlenir. Asenkron yöntemin durumu, C# derleyicisi tarafından otomatik olarak yönetilir ve son hali bir sonlu durum makinesine dönüştürülür.
public async Task<string> GetDataAsync(string url)
{
// Uzun süren giriş-çıkış işleminin simülasyonu
using (var httpClient = new HttpClient())
{
string result = await httpClient.GetStringAsync(url); // await: yöntemin yürütülmesi duraklatılabilir
return result;
}
}
// Asenkron yöntemi çağırma örneği
public async Task ProcessDataAsync(string url)
{
Console.WriteLine("Veri yükleme başladı...");
string data = await GetDataAsync(url); // Asenkron işlemin tamamlanmasını bekleme
Console.WriteLine("Veriler yüklendi: " + data.Length + " karakter.");
}