Asenkron programlama; uygulamanın veritabanı sorgusu, HTTP isteği veya dosya işlemi gibi bir operasyonu beklerken faydalı başka işler yapmaya devam etmesini sağlar. C# içinde bu akışı ifade etmenin standart yolu Task, async ve await modelidir.
Task nedir?
Task, gelecekte tamamlanabilecek bir işlemi temsil eder. Bir metot asenkron bir işlem yürütüyorsa Task, sonunda bir değer üretiyorsa Task<T> döndürebilir.
async ve await ne yapar?
async anahtar kelimesi bir metodun await kullanabileceğini belirtir. await ise beklenen işlem tamamlanmamışken metodun akışı serbest bırakmasına ve sonuç hazır olduğunda devam etmesine olanak tanır.
public async Task<string> GetDataAsync()
{
var response = await httpClient.GetStringAsync(url);
return response;
}Nerede kullanılır?
- Veritabanı işlemleri
- HTTP/API istekleri
- Dosya işlemleri
- Diğer I/O ağırlıklı işler
Async kod özellikle web uygulamalarında kullanışlıdır; çünkü thread'lerin I/O beklerken boşta tutulması gerekmez.
Dikkat edilmesi gerekenler
Async kullanmak CPU ağırlıklı işleri otomatik olarak hızlandırmaz. Asenkron bir akış mümkünken kodu .Result veya .Wait() ile bloklamaktan kaçının.
Not: Bu içerik genel teknik bilgilendirme amacıyla hazırlanmıştır. Üretim projelerinde kullanılan teknoloji ve mimari, projenin ihtiyaçlarına göre değerlendirilmelidir.