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}
9
10private async void Buton_Click(object sender, EventArgs e)
11{
12string veri = await VeriCek();
13MessageBox.Show(veri);
14}[/kod]
15
16Burada `async` anahtar kelimesi metodu asenkron hale getirir, `await` ise o satırda işlemin tamamlanmasını bekler ancak thread serbest kalır.
17
18**Önemli Noktalar:**
19
20Async metotlar `Task` veya `Task<T>` döndürmelidir. Void dönüş tipi sadece event handler'larda kullanılır.
21
22Exception handling normal try-catch ile çalışır. Asenkron kod içinde hata oluşursa catch bloğu yakalamaya devam eder.
23
24UI thread'i bloke etmek yerine ThreadPool kullanılır. Bu sayede uygulamanız duyarlı kalır.
25
26**Çok İşlem Yönetimi:**
27
28[kod]
29var task1 = VeriCek();
30var task2 = VeriBaglantiSinavi();
31
32await 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.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz