C# Thread NEDİR?
C# Thread Nedir? diye sorarsak Thread, programın kendini senkronizasyonla birden çok iş bölümüne ayrılabilmesinin farklı bir yoludur. Bilgisayarımızda tek işlemci kullanıyorsak Thread kullandığımızda uygulamalar zaman dilimleme ile gerçekleştirilir. Yani tek işlemci 2 ya da daha çok Thread‘ ler arasında çok hızlı geçiş yapar. Bu olay sanki eş zamanlı olarak işlemlerin gerçekleştirildiği izlenimini yansıtır.
Bilgisayarımızda birden çok işlemci varsa Thread‘ ler farklı işlemciler üzeride eş zamanlı olarak çalışabilir. Thread (iplik) kavramı, aynı process ortamında birden çok iş yürütebilme imkanı sağlar. Threading işlemlerini kontrol eden tipler System.Threading kütüphanesidir. Thread‘ in sınıfından birden fazla metodu olduğu için ben en temel Start() ve Sleep() metotlarından bahsedeceğim. Ya da daha derin bi detay istiyorsanız Microsoft’ un sitesinden buraya tıklayarak bakabilirsiniz
Start(): Thread classının en ana metotudur ve Thread‘ lerin çalışmasını başlatır.
Sleep(): Sleep metodu kullanarak Thread‘ in çalışmasını bir süreliğine bekletebiliriz. Örneğin; belli bir zamana fonksiyonu çalıştırıp örneğin 0.10 saniye dinlendirdikten sonra işleme devam ettirebiliriz ya da başka fonksiyonları çalıştırabiliriz.
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text; using System.Windows.Forms; //Thread kullanabilmek için öncelikle aşağıdaki 2 satırı eklemeliyiz.
using System.Threading;
using System;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form { public Form1() { InitializeComponent();
} //Button Click olayı altında Thread lerimizi oluşturalım ve başlatalım. static void button1_Click(object sender, EventArgs e) { Thread thread1 = new Thread(new ThreadStart(ThreadFuncEven)); Thread thread2 = new Thread(new ThreadStart(ThreadFuncOdd)); //Threadleri başlatalım bakalım sırasına göremi yoksa paralelmi işleyecek. //Sırasına göre işlenseydi önce çift sayılar, sonra tek sayılar basılmalıydı. thread1.Start(); thread2.Start(); } //Output her saniye 2 sayı gelecek şekilde 1 2 3 4 5 ... 100 şeklinde olacaktır. static void ThreadFuncEven() { for (int i = 0; i < 100; i += 2) { //Her çift Sayı için 1 saniye bekleyelim ve sayıyı yazdıralım Thread.Sleep(1000); Console.WriteLine(i); } } static void ThreadFuncOdd() { for (int i = 1; i < 100; i += 2) { //Her Sayı için bir saniye bekleyelim ve sayıyı yazdırsın. Thread.Sleep(1000); Console.WriteLine(i); } } } }
Hata!
Yorumunuz Çok Kısa, Yorum yapabilmek için en az En az 10 karakter gerekli