Open
Asenkron (Eşzamansız) nedir?

Bir program kullanırken aniden program donar ve hiçbir işleme cevap vermez. Bir süre sonra ise kaldığı yerden,sanki birşey olmamış gibi devam eder. Bunun sebebi arka-yüzde, yürütülen işlemin eşzamanlı yani senkron olmasıdır.Program o anki işlemi tamamlamadan yoluna devam etmez.
Örneğin; butona tıkladığımızda bir indirme metodumuz var ve onu label etiketinde indirildi diye yazacak. Biz butona tıkladığımızda, program bir dona meydana gelir.Bu işlem bitmeden hiçbir iş yapamayız.UI katmanı kilitlenir çünkü Eşzamanlı bir programlama yapmışızdır.
Lakin, Asenkron eşzamansız bir yapı olşutursaydık, burdaki uzun bir işin bitmesini beklemeden, bu işe bağımlı olmayan diğer işlere devam edebilirdik.
Asenkron Programlama ile yazdığımız kod işlerken, aynı program içindeki diğer kodlar da işler. Kullanıcı programın bir bölümünü kullanırken, başka bölümü ile de işlem yapabilir. (Mobil uygulamalar için olmazsa olmazdır) Kullanımı basittir.

async ve await anahtar kelimeleri

C# 5.0 ile gelen asenkron programlama tekniğinden yararlanmak için async ve await anahtarlarını kullanırız. EşZamansız metod yazmaya olanak sağlar.
Senkron örnek; byte[] img = client.DownloadData("image.png");
asenktron örnek; byte[] img = await client.DownloadDataTaskAsync("image.png");

İlk Senkron örnekte, download sırasında eğer resmin boyutu büyükse program belirli süre donup işlem tamamlandıktan sonra bize dönecek.
Asenkron örnekte ise, download sırasında askıya alınıyor.async anahtar kelimesi derleyiciye metodun await anahtarını içerdiğini haber veriyor
MVC mimari katman yöntemiyle şöyle bağdaştırabiliriz.
Garson, müşteriden siparişi alıyor, mutfağa gidip yemeğin hazır olmasını bekliyor ve alıp müşteriye sunuyor.
Lakin bu, o müşterinin siparişini, kendisine servis etmeden, başka müşterilerin siparişini almaması gerektiği demek değildir.

02.02.2020