• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

c# Thread İle Paralel Programlama

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
Merhaba arkadaşlar, size bu başlıkta önemli bir konu olan Threadler hakkında hiç değilse giriş seviyesinde bilginiz olması açısından kısaca bahsedeceğim.

Threadler, programınızın içerisinde aynı anda kanallar oluşturarak birden fazla işi aynı zamanda yapar gibi çalışmasını sağlar. Hemen bir örnekle açıklayayım.

Form load kısmına

Kod:
while(true)
{

}

messagebox.Show("bu mesaj gözükmeyecek");
yazdığımızda hiçbir zaman için ekrana mesaj yazdırılmayacak. Çünkü program sürekli döngüyü çalıştırıyor olacak ve bir sonraki işlem olan alt satıra geçmeyecek.

Fakat şöyle bir kodlama yaptığımızda

Kod:
private **** Form1_Load(object sender, EventArgs e)
{
Thread t1 = new Thread(dongu); /// yeni bir instance olusturduk
t1.Start(); //// threadimiz baslattik

Thread t2 = new Thread(mesaj);
t2.Start();

}

//// yildizli kisimlar v o i d
**** mesaj() {
while(true){
MessageBox.Show("bu mesaj");
Thread.Sleep(700);

}

}

**** dongu() {

while (true)
{

MessageBox.Show("basladi");
Thread.Sleep(1000); /////1000 milisaniye (1 sn) bekletiyoruz

}


}
bu sefer sırasıyla mesajları gösterecektir.

Bazı arkadaşlar bunu şu şekilde yapsak çalışırdı diyebilir

Kod:
private **** Form1_Load(object sender, EventArgs e)
{
dongu();
mesaj();
}
Fakat böyle bir kod yapısında program "dongu" fonksiyonunda sıkışıp kalacaktır ve hiçbir zaman için diğer kodları çalıştırmayacaktır.

----------------------------------------------------------------------------------------------------------------

Arkadaşlar gördüğünüz gibi threadler giriş seviyesinde bu şekilde çalışır. Kullanım alanı çok geniştir. Örneğin bir download manager yaptığınızı düşünürsek birden fazla indirme işlemi yapabilmek için thread kullanmalısınız.
Veya bir chat programında aynı anda birden fazla kişiyle mesajlaşmak gene threadler sayesinde mümkün olur.

Threadler en basit haliyle böyledir fakat geniş bir konudur derine indikçe ayrıntıların arttığını farkedeceksiniz sizlerde.

Threadler "System.Threading" kütüphanesinde bulunurlar.

Faydalı olması dileğiyle, teşekkürler.
 
Üst