Task Nedir ?
Bir pizza yaptığımızı düşünelim. Tüm malzemeleriniz hazır, ancak pişirmeden önce hamurun bir süre kabarmasına izin vermeliyiz. Hamurun kabarmasını beklerken sofrayı kurmak ya da televizyon izlemek gibi başka şeyler yapabiliriz.
Daha teknik olarak: C#'ta bir Task, asynchronous operationu temsil eder. Senkronize koda benzer bir şekilde asenkron kod yazmanıza izin vererek okumayı ve bakımını kolaylaştırır.
Taskların multi threadlerle ilişkisi yoktur. Tasklar kendini call eden kodla aynı thread tarafındanda execute edilebilir yada ayrı bir thread tarafından da execute edilebilir. Thread seçimi , Taskların execute edilmesini yönetmekten sorumlu olan task scheduler tarafından belirlenir.
WebAssembly kullanan Blazor Client veya Promisleri içeren (Tasklara çok benzer) javascript gibi teknolojileri düşünün. Bu iki teknoloji yalnızca tek bir thread üzerinde çalışır. Yinede Taskları ve asenlron programlamayı kullanabilir.
Taskları Neden Kullanırız?
Taskların kullanılmasındaki ana sebep ölçeklendirmedir. Kesinlikle performans değildir.
Sonuç olarak, Tasklar C#'ta basit, Senkron benzeri bir sözdizimiyle eşzamansız(asenkron) kod yazmamıza izin veren önemli bir kavramdır. Tasklar ayrı threadler tarafından execute edilebilir ve performanstan çok ölçeklenebilirlik için kullanılırlar.
Hiç yorum yok:
Yorum Gönder