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.
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.