C# asenkron methot – Thread

Merhabalar,

C# ile  uzun vakit  alan  işlemler yapacaksak ve bu arkada  yapılan işlemler hemen kullanıcıya bir değer  döndürmeyek ise  asenkron metotlar  bize  çözüm getiriyor. Bunun  bir kaç yönetmi bulunmakta await , Thread gibi…  Biz örnek olarak Thread'ı  inceleyeceğiz. Thread'ı oluşturmadan önce Solution Explorerdan , Projemize sağ tıklayıp Managet Nuget Package'i tıklayıp AsyncCtpLibrary.dll 'i  Projemize  referans  etmemiz gerekiyor.(Resimde görüldüğü gibi)

 

asenkronresmi tıklayıp büyütebilirsinşiz 🙂 

AsyncCtpLibrary.dll 'i projemize ekledikten sonra yazmaya başlayalım.

Projemize eklememiz gereken kütüphaneler;

using System.Net;
using System.Threading;

İlk  olarak  tread'ı tanımlayıp sonra start  ile çalıştıracağız. 

Örnek kodda  bir aspx sayfasına label1 ve button1 ekledim.

        protected void Button1_Click(object sender, EventArgs e)
        {
            var AsenkronIslem = new Thread(new ThreadStart(Asenkron)); // Tanımlama işlemini  yaptık.
           
AsenkronIslem .Start();  // Asenkron metotumuz start  ile  çalışmaya  başladı
            Label1.Text = "Uğur TALAŞ";  // Asenkron işlemlerimiz daha bitmeden ekrana Uğur talaş yazılacaktır
        }

        private void Asenkron()
        {

            Thread.Sleep(2000); // Asenkron metodu test edebilmemmiz eklediğimiz 2 saniyelik beklemeler
            Thread.Sleep(2000);
            Thread.Sleep(2000);
        }// Buraya break point koyarsaksafadaki  label1'e text  yazıldıktan  6 saniye  sonra   programımız burdaki break pointe düşecektir.

 

Bu kullandığımız yöndem  parametre almayan bir metpt  için geçerlidir .Parametre alan bir metot için  aşağıdaki kodları yazmamız gerekir.

 protected void Button1_Click(object sender, EventArgs e)
        {

            int deger;
            var AsenkronIslem = new Thread(new
ParameterizedThreadStart(Asenkron)); 
            AsenkronIslem 
.Start(deger);  // Parametreyi burada yolluyoruz 
            Label1.Text = "Uğur TALAŞ"; 
        }

        private void Asenkron(int deger)
        {

            Thread.Sleep(2000); 
            Thread.Sleep(2000);
        }

Asenkron metotlar  hayat kurtarır…

 

Bunlar da hoşunuza gidebilir...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir