C# ile Async/Await: Asenkron Programlama Temelleri
C# dilinin en güçlü özelliklerinden biri asenkron programlamadır. Async/await yapısı, uzun süren işlemleri (veritabanı sorgusu, API çağrısı, dosya işlemi) UI'ı dondurmadan gerçekleştirmenizi sağlar.
Asenkron kod yazmanın temel mantığı şudur: bir işlem tamamlanırken program başka görevleri yapabilir. Geleneksel senkron kod ise işlem bitene kadar bekler, bu sırada uygulama yanıt vermez.
Basit Örnek:
Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1async Task<string> VeriCek()2{3using (HttpClient client = new HttpClient())4{5string sonuc = await client.GetStringAsync("https://api.example.com/data");6return sonuc;7}8}910private async void Buton_Click(object sender, EventArgs e)11{12string veri = await VeriCek();13MessageBox.Show(veri);14}[/kod]1516Burada `async` anahtar kelimesi metodu asenkron hale getirir, `await` ise o satırda işlemin tamamlanmasını bekler ancak thread serbest kalır.1718**Önemli Noktalar:**1920Async metotlar `Task` veya `Task<T>` döndürmelidir. Void dönüş tipi sadece event handler'larda kullanılır.2122Exception handling normal try-catch ile çalışır. Asenkron kod içinde hata oluşursa catch bloğu yakalamaya devam eder.2324UI thread'i bloke etmek yerine ThreadPool kullanılır. Bu sayede uygulamanız duyarlı kalır.2526**Çok İşlem Yönetimi:**2728[kod]29var task1 = VeriCek();30var task2 = VeriBaglantiSinavi();3132await Task.WhenAll(task1, task2);Bu kod her iki işlemin de tamamlanmasını bekler. Paralel çalışırlar, biri diğerini bloke etmez.
Async/await kullanmak özellikle web uygulamalarında ve masaüstü programlarda kritiktir. Yüzlerce eş zamanlı istek işleyen sunucu uygulamalarında performans farkı çarpıcıdır.
0 yorum