İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# Threading nedir ?

Tükenir Kalem10.04.20140 cevap2.212 görüntüleme
2014'den beri767 mesaj
#1
Merhaba arkadaşlar:) Derslerden başım ağrıdı,biraz program yapayım derken birşeyde takıldım.Sorun bir programda iki işlemi aynı anda yapmaya çalıştığımda ortaya çıkıyor.Sonra araştırdığımda internette thread diye bir şeye rastladım.Thread yapısı programın içindeki işlemcikleri kontrol etmemizi,birbirlerinden bağımsız şekilde çalışmalarını sağlıyor.

İki işi bir anda yapmaya çalıştığımızda işlemciye fazla yüklendiğimiz için zavallı işlemciğin kafası karışıyormuş,yani bir bilgisayarda bir program donduğunda tüm programların da donması bu yüzdenmiş:) Windows'ta bu thread kavramı,işlemlerin işlemciye parçalar halinde gitmesini sağlayıp,bir program donduğunda diğerinin hala çalışabilir olmasını sağlıyor.(Gerçi bazen hala hepten çöküyor ama neyse :P)

Şimdi thread konusunda internetten öğrendiğim bilgileri burada paylaşayım dedim.Bunun için basit bir program yapacağız.Program basit bir formdan oluşuyor,üstünde iki tane button var.Birinci buton işlem butonu olacak,butona tıkladığımızda long i=0 değerini sürekli arttıran bir for döngüsü kuracağız.Buttonun esprisi şu,bu for döngüsü çok uzun sürecek ama buttonun içinde döngü bitince görüntülenmesi gereken bir Messagebox.Show kodcuğu da var.İkinci button ise görüntülenmesi gereken ikinci Messagebox.Show kodcuğunu içeriyor.

Zurnanın zırt dediği yer şurası,biz ilk buttona tıkladığımızda for döngüsü işlemciyi öldürdüğü için ikinci butona tıklayınca mesajı bir türlü göremiyoruz.İşte burada da thread yapısı yardımımıza koşuyor.

Programın ilk hali şöyle :


Bu şekilde programı çalıştırdığımızda fanın sesi yükseliyor,ardından bilgisayar yavaşlamaya başlıyor.İkinci buttona tıklamaya çalıştığımızda ise program hepten çöküyor.Bu da işlemciye binen yükten kaynaklı..

Şimdi aynı programı thread ile tekrar yapıyoruz.Öncelikle programımıza System.Threading eklemesi yapmalıyız,kullanabilmemiz için.


Ardından t isimli bir thread ekliyoruz,bunun içinde çalıştırıyoruz islem() işlemimizi :) Böylece ayrı bir yol bulmuşçasına iki buttonun işlemlerini birbirlerinden ayırıyoruz,işlemci de kafayı yemiyor.


Son durumda ise ikinci buttona tıkladığımızda uyarı mesajını almayı başarıyoruz.Çünkü thread sayesinde işlemler parçalar halinde işlemciye sırayla gönderiliyor,böylece programımız donmuyor,windowsun sinir bozucu "Program Yanıt Vermiyor" uyarısını almıyoruz...

Yazı alıntı değil,ama tüm emekte bende değil.Faydalandığım sitelere burada dolaylı yoldan teşekkür ederim :) İyi forumlar..

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.