Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


Thread Örneği

Yazar: Nazım

Kategori: .NET Framework

Eklenme Tarihi: 10.10.2007 18:14:17

Bu makalemde basit anlamda iki iş parçacığının aynı anda nasıl çalıştığını inceleyeceğiz. Aslında işin özünde bu iş parçacıkları aynı anda çalışmıyor . . .

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



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.

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

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

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



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

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


Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.