Jump to content

C# - Thread Örneği


wmismail

Recommended Posts

Giriş

İş parçacıkları normalde bir program içerisinde sırası ile yapılır. Fakat bazen kullanıcılar bu iş parçacıklarının bir bilgisayar üzerinede aynı anda yapılıyormuş hissine kapılır ki bu doğaldır. Mesela bir kullanıcı aynı anda müzik dinlerken aynı anda dosya yükleyebilir ve hatta aynı anda internette gezinebilir. Bunların tümü aynı anda yapılıyormuş hissini uyandırır. Esasında bu uygulamaların hepsi işlemcide sıraya alınır öyle yapılır. Thread uygulamalarında ise işlemci uygulamaları biraz biraz yaparak aynı anda yapıyormuş gibi gerçekleştirir. Yani biraz müzik biraz internette gezinti biraz dosya yüklme ... gibi...

Örneğimiz

1.png

Tasarımımız yukarıdaki gibi olmalıdır.

2 adet ProgressBar (name:pr1 ve name:pr2)

2 adet Button (text:Başla ve text:Durdur)

Form tasarımımızı yapdıktan sonra şimdi sıra geldi ilgili kütüphaneleri çağırmaya. Yapacağımız uygulama Thread uygulaması olması sebebiyle aşağıdaki 2 kütüphaneyi code penceresinin en üst kısmına eklemeliyiz.

ImportsSystem.Threading

ImportsSystem.Threading.Thread

Bu 2 kütüphaneyide çağırdıktan sonra şimdi sıra geldi global değişkenlerimizi tanımlamaya. Tahmin edebileceğiniz gibi global değişkenler o class üzerinde her yerden çağırılabiliyor. Her kontrolün her olayında kullanabilirsiniz.

Public ClassForm1

Yukarıdaki söz diziminin hemen altına aşağıdaki değişkenlerimizi tanımlayalım.

Dimts1 As NewThreadStart(AddressOfbirinci_is)

Dimts2 As NewThreadStart(AddressOfikinci_is)

Dimt1 As NewThread(ts1)

Dimt2 As NewThread(ts2)

Dimi As Integer

Birinci İş Parçacığı

Bu uygulamamızda 2 iş parçacığı oluşturulacak ve burada yazılan kodlar uygulamadaki sınıf içinde yazılması gerekir

Subbirinci_is()

pr1.Maximum = 1000000000

Fori = 0 Topr1.Maximum

pr1.Value += i

Next

End Sub

Buradaki iş parçacığı text özelliği başla butonunun click eventinde çağırılacaktır.

İkinci İş Parçacığı

Buradaki yazılan kodlar da ikinci iş parçacığını oluşturmaktadır.

Subbirinci_is()

pr2.Maximum = 250000000

Fori = 0 Topr2.Maximum

pr2.Value += i

Next

End Sub

Buradaki iş parçacığı text özelliği başla butonunun click eventinde çağırılacaktır.

Vee Son Adım

Son olarak geldik Formumuzda bulunan 2 adet butonun click event'lerine.

text özelliği Başla olan butonumuzun click olayına ait kodlar aşağıdaki gibi olmalıdır.

t1.Start()

t2.Start()

text özelliği Durdur olan butonumuzun click olayına ait kodlar aşağıdaki gibi olmalıdır.

t1.Suspend()

t2.Suspend()

Uygulamamızı derleyelim ve çalıştıralım. Başla butonuna bastığınız zaman oluşturmuş olduğumuz 2 iş parçacığı aynı anda çalışıyormuş gibi görünecektir. Ekran görüntüsünde olduğu gibi...

2.png

Makaleye ait örnek uygulamayı indirmek için tıklayın

Bir sonraki makalemde görüşmek dileğiyle .net ile kalın ...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...