Thread bilgisayar biliminde, bir programın kendini eş zamanlı birden fazla iş parçasına ayırabilmesinin bir yoludur. Threadlar ile program yazılmasına son dönemlerde çok ağırlık verilmiştir. Bu yazımda ise size c# ile thread kullanmayı anlatacağım. C# ile threadlerden oluşan program yazabilmek için ilk önce "using System.Threading;" kütüphanesini ekliyoruz.
Thread kullanırken Thread sınıfından bir nesne üreterek bu nesneye kullanacağımız metodu ekliyoruz.
Thread thread=new Thread(new ThreadStart(kullanacağımız metodun ismi));
Şimdi küçük bir sayıcı programı ile thread kullanımını görelim. Formumuzu aşağıdaki şekilde oluşturuyoruz.
Formumuzu oluşturduktan sonra kodlarımıza geçelim. İki tane metodumuz olacak bu metodlardan birisindeki sayaç değeri sürekli label1 e , diğer metod da ise label2 ye metod içindeki sayacın değeri yazılmaktadır. Programımızda çalışan metodların kodları şu şekildedir.
public void lb1_degistir()
{
for (int i = 0; i < 100; i++)
{
label1.Text = i.ToString();
Thread.Sleep(20); // Sayıcı değerini ekranda görmek için bekletiyoruz.
}
}
public void lb2_degistir()
{
for (int i = 0; i < 100; i++)
{
label2.Text = i.ToString();
Thread.Sleep(20);
}
}
Bu iki metodu BAŞLAT butonunda tıkladığımız da oluşturduğumuz threadin içine atarak aynı anda çalıştırıyoruz. DURDUR butonuna tıkladığımızda ise threadlerimizi durduruyoruz. Sayıcıların aynı anda başladığını ve durdurduğumuzda aynı veya birbirine yakın değerler verdiğini görüyoruz.
Thread t;
Thread t2;
private void button1_Click(object sender, EventArgs e)
{
System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
//Yukardaki kodu threadlar içinde form kontrollerini kullanabilmek için ekliyoruz.
// eklemediğimiz zaman kontroller üzerinde bir değişiklik yapamayız.
t = new Thread(new ThreadStart(lb1_degistir));
t2 = new Thread(new ThreadStart(lb2_degistir));
t.Start();
t2.Start();
}
private void button2_Click(object sender, EventArgs e)
{
button2.BackColor = Color.Red;
t.Abort();
t2.Abort();
}
Programın ekran çıktısı ise şu şekildedir.

İleriki günlerde threadlardan daha ayrıntılı bahsedeceğim. Bu yazımda thread kullanımını anlamak açısından küçük bir örnek yaptık.