internet güzel bir şeydir
7 Temmuz, 2009'de yayınlandı.
Kategori(ler):
Yazılım |
Etiketler:
.net-BackGroundWorker-c-event-multithreading-thread-threadstart|||
Yorum yok »

Loading ...
|
Multithreading nedir: Bir kod akarken arka planda başka bir kod parçacığını çalıştırmaktır. Yani programa aynı anda birçok iş yaptırmaktır.
Örneğin: Program bir yandan 1 milyon tane sayıyı çarpsın, aynı anda bir dosya kopyalasın, bunları yaparken de kullanıcı beklemesin, program arayüzü kitlenmesin, bir ilerleme çubuğu durumu göstersin… gibi gibi. İşte bunlar Thread oluşturularak yapılıyor.
Visual çalışıyorsak, toolbox’taki BackGroundWorker ile bu işi yapabiliriz. Ama ben en basit yöntem diyorum ki, şöyledir;
using System.Threading ekleyelim
private void bişey()
{
ThreadStart ArkaİşBaşlatıcı=new ThreadStart(ArkaPlandaÇalışacakOlanFonksiyon);
Thread Arkaİş=new Thread(ArkaİşBaşlatıcı);
Arkaİş.Başlat();
}
private void ArkaPlandaÇalışacakOlanFonksiyon()
{
//işler burada
}
———————-
Alternatif olarak, işin bittiğini de event fırlatarak şöyle yakalayabiliriz; (Event ile ilgili ayrıntılı bilgi şurada var.)
Devamını oku »
|
29 Mayıs, 2009'de yayınlandı.
Kategori(ler):
Yazılım |
Etiketler:
.net-c-form-sayaç-thread-timer-windows form|||
Yorum yok »

Loading ...
|
Karmaşık birkaç işi iç içe bulunduran bir kronometre örneği hazırladım;
- Form1 üzerinden Thread ile Form2 oluşturuyoruz.
- Form1′deki başlat düğmesi ile Form2′nin bir metoduna erişiyoruz.
- Form2′nin başlat metodu Timer başlatıp 100 milisaniyede bir sayacı artırıyor.
- Thread içinde olduğumuz için sayaç değerini güncelleme işini Invoke ile yapıyoruz.
- Ve Form1′in durdur düğmesiyle Form2′deki Timer’ı durduruyoruz. (Tekrar başlatınca kaldığı yerden devam ediyor)

Devamını oku »
|
15 Mayıs, 2009'de yayınlandı.
Kategori(ler):
Yazılım |
Etiketler:
c-thread|||
1 Yorum »

Loading ...
|
Formlardaki kontrollere sadece formun oluşturulduğu threadlerden erişilebildiği için ana formumuzda açtığımız bir kontrolün değerlerine başka bir thread üzerinden erişemiyoruz.
Diyelim ana form üzerinde bir progressbar’ımız var ve thread içinde işlemler yapıldıkça bu progressbar’ın değerini artırmak istiyoruz.
Öyle direk progressbar1.value=50 olmuyor thread içinde. 
Bu kontrolün Invoke yapılarak değiştirilmesi gerekmekte. Yani thread içinden şu fonksiyonu çağırarak değeri değiştirebiliyoruz;
public void PBGüncelle(int Değer)
{
if (progressBar1.InvokeRequired)
{
progressBar1.BeginInvoke(
new MethodInvoker(
delegate() { PBGüncelle(Değer); }));
}
else
{
progressBar1.Value = Değer;
}
}
Devamını oku »
|