27 Temmuz 2011 Çarşamba

C# Thread Kullanımı

C#’ta thread kullanımı aynı anda birden fazla iş yapmamızı sağlar.Bu şekilde programımızı birden fazla iş bölümüne ayrabiliriz.Farklı thradlar aynı fonksiyonu kullanabiliceği gibi farklı fonksiyonlarıda kullanabilirler.



Programımızda thread kullanmak için öncelikle threading kütüphanesini programımıza eklemeliyiz.

using System.Threading;

Sonrasında istediğimiz event içind threadlarımızı aşağıdaki gibi tanımlayıp başlatabiliriz

System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
Thread thread1 = new Thread(new ThreadStart(listBox1Ekle));
Thread thread2 = new Thread(new ThreadStart(listBox2Ekle));
Thread thread3 = new Thread(new ThreadStart(listBox3Ekle));

thread1.Start();
thread2.Start();
thread3.Start();


Yukarıda 3 tane thread tanımlanmıştır ve herbiri ayrı fonksiyonları çağırmaktadır.Eğer System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false; komutunu kullanmassak hata alırız bunun sebebi ise thread lerin senkronlanmadığından.Yukarıda çağırılan fonksiyonlarda aşağıdaki şekilde tanımlayalım.

private void listBox1Ekle()
{
for (int i = 0; i < 100; i++)
{
listBox1.Items.Add(i + "-Thread1");
Thread.Sleep(300);
}

}

private void listBox2Ekle()
{
for (int i = 0; i < 100; i++)
{
listBox2.Items.Add(i + "-Thread2");
Thread.Sleep(500);
}
}

private void listBox3Ekle()
{
for (int i = 0; i < 100; i++)
{
listBox3.Items.Add(i + "-Thread3");
Thread.Sleep(700);
}
}

Programda görüldüğü gibi 3 ayrı thread farklı zaman dilimlerinde listboxları dolduracatır.Thread kullanımı kısaca bu mantıkta çalışır.
Share:

0 yorum:

Yorum Gönder