C# THREADİNG

Threading kavramı birden fazla işin aynı anda çalışması olarak ifade edilebilir. Yazdığımız bir kod bloğu bir threadı ifade etmektedir. Threadın temel çalışma prensibi zamandan tasarruf etmektir diyebiliriz. Örneğin büyük bir dosya diske yazılıyor ve kullanıcı bunu beklemek zorunda. Thread kullanıldığı taktirde kullanıcı dosyanın diske yazılmasını beklemek zorunda değil. Özetle bir programın arka planda çalışmasını sağlayan yapıya thread adı verilir. Bu yapıda programın bir bölümü arka planda çalışırken kullanıcı diğer bölümler üzerinde işlem yapabilir.

Aşağıda

Aşağıdaki örnekte, kullanıcı menüden tekrar seçim yapabilmek için dosyanın kaydedilmesini beklemek zorundadır.

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System;
//Kutuphaneye yukaridaki son iki satiri eklemeden thread kullanimi gerceklestiremeyiz.
namespace WindowsFormsApplication1{
  public partial class Form1 : Form {
      public Form1(){
        InitializeComponent();
      }

      static void startbutton Click(object sender, EventArgs e){
        Thread bolum1 = new Thread(new ThreadStart(ThreadFuncEven));
        Thread bolum2 = new Thread(new ThreadStart(ThreadFuncOdd));
        bolum1.Start();
        bolum2.Start();
      }

      static void ThreadFuncEven(){
        for (int sayi = 0; sayi < 100; sayi += 2){
           Thread.Sleep(1000);
           Console.WriteLine(i);
        }
      }

      static void ThreadFuncOdd(){
        for (int sayi= 1; sayi< 100; sayi += 2){
           Thread.Sleep(1000);
           Console.WriteLine(i);
        }
      }
    }
  }

Yukarıdaki örnekte tek ve çift sayılar üzerinden işlem yapan bir program ele alınmıştır. Sleep komutları milisaniye cinsinden bekleme komutları olarak adlandırılablir. Yaniher tek veya çift sayı yazımında program 1 saniye bekleyecektir. Aşağıda sık kullanılan thread metotları verilmiştir. İnceleyelim:

İsAlive:Thread çalışma durumunu verir.

Nam: Threadın adını verir.

Priority: Thread çalışma önceliği

Abort: Threadın çalışmasını iptal eder.

Suspend: Threadı geçici durdurur.

Sosyal Medyada Paylaş