c# ta Thread (Threading işlemleri) iplik kullanımı.
1 | using System.Threading; |
cross thread hatası almamak için CheckForIllegalCrossThreadCalls özelliğini form load eventinde false yapalım.
Thread tanımlama ve başlatma:
1 2 3 4 5 6 | Thread baslat; private void BaslatButon_Click(object sender, EventArgs e) { baslat= new Thread(new ThreadStart(ListeyeEkle)); baslat.Start(); } |
Thread da işlemi durdurma:
Listeye 1.000.000 kadar yazdırma işlemini ve her adımda listeyi sayıp form başlığına ekleyen metod.
1 2 3 4 5 6 7 8 | void ListeyeEkle() { for (int i = 0; i <= 1000000;i++ ) { listBox1.Items.Add(i.ToString()); this.Text = listBox1.Items.Count.ToString(); } } |
Tüm kodlar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | private void Form1_Load(object sender, EventArgs e) { CheckForIllegalCrossThreadCalls = false; } Thread baslat; private void BaslatButon_Click(object sender, EventArgs e) { baslat= new Thread(new ThreadStart(ListeyeEkle)); baslat.Start(); } private void DurdurButon_Click(object sender, EventArgs e) { baslat.Abort(); } void ListeyeEkle() { for (int i = 0; i <= 1000000;i++ ) { listBox1.Items.Add(i.ToString()); this.Text = listBox1.Items.Count.ToString(); } } |