Asenkron Programlama

Kullandığımız programlarda bir butona tıklarız ve program aniden donar. Kullanıcı arayüzü yaptığımız hiçbir işleme cevap vermez. Bir süre sonra program hiçbir şey olmamış gibi çalışmaya devam eder. Bunun sebebi arka planda yürütülen işleminin eşzamanlı (senkron) bir şekilde gerçekleştiriliyor olmasıdır yani program o anki işlemi tamamlamadan ne başka bir işleme devam edebilir ne de kullanıcının komutlarına cevap verebilir. Asenkron programlama bu tarz sorunlar ile karşılaşmamak için kullanılır.

Asenkron programlama, işin parçalara ayrılıp tüm işlemlerin aynı anda sürdürülmesini sağlar. Asenkron Programlama ile programımız içerisinde yazdığımız bir kod işletilirken, aynı program içerisinde diğer kodlar da işletilebilir. Bu sayede kullanıcı programımızın bir bölümünü kullanırken, başka bir bölümü ile de işlem yapabilir. Bu özellikle mobil uygulamalar için hayati bir önem taşıyor. Mobil haricinde de birçok kullanım alanı var.

Asenkron programlama, multi threading ile karıştırılmamalıdır. Asenkron olarak yazacağımız kodlar tek bir thread üzerinde de çalışabilir. Asenkron programlamanın özelliği farklı thread’lerde çalışması değil, verdiğimiz işi parçalara ayırarak programımız üzerinde birden fazla işin aynı anda yürütülmesini sağlamaktır. ( multi threading için kaynak incelenebilir : https://www.mertmekatronik.com/thread-ve-multithread-nedir)

async ve await anahtar kelimleri;

C# 5.0 ile gelen asenkron programlama tekniğini kullanmak için async ve await anahtar kelimlerine ihtiyaç duyuyoruz. Normal olarak çalışan bir metodu asenkron hale getirmek istiyorsak, metodu tanımlarken async kullanırız daha sonrasında ise kullanacağımız kod satırının önüne await anahtar kelimesini getiririz. ve Geri dönüş tipi de Task<TREUSLT> olmak zorundadır. Metodu tanımlarken async kullanmamızın sebebi bu yazdığımız metod içerisinde asenkron kod parçaları yazacağımızı CLR’a bildirmemiz gerektiğinden kaynaklanıyor. Await’i de asenkron olarak çalışmasını istediğimiz kodları seçiyoruz.

Last updated