Forum

Thread ile form ele...
 
Bildirimler
Hepsini Temizle

Thread ile form elemanlarına erişme

Murat güler
(@muratguler)
Üye

Merhaba 

Oluşturulan birden fazla thread ile 1 tane ana form içerisindeki birden fazla elemanı aynı anda değiştirmek istiyorum. Bunu nasıl yapabilirim ?

Teşekkürler

Alıntı
Konu başlatıcı Gönderildi : 22/11/2017 18:26
Birol AYDOĞAN
(@birolaydugan)
Üye

background worker yapısını inceledinizmi .

CevapAlıntı
Gönderildi : 23/11/2017 00:13
Volkan Alkılıç
(@volkanalkilic)
Üye

Aşağıdaki kod yardımcı olacaktır;

 

void Main()
{
System.Windows.Forms.Form form = new System.Windows.Forms.Form();
Button button = new Button();
button.Text = "Başla";
button.Dock = DockStyle.Bottom;
Button button2 = new Button();
button2.Text = "0";
button2.Dock = DockStyle.Bottom;
button.Click += (sender, args) =>
{
using (BackgroundWorker worker = new BackgroundWorker())
{
worker.DoWork += (s, e) =>
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(100);
button2.BeginInvoke((Action)(() =>
{
button2.Text = i.ToString();

}));

}

};
worker.RunWorkerCompleted += (s, e) =>
{
};
worker.RunWorkerAsync();
}
};
form.Controls.Add(button);
form.Controls.Add(button2);
form.Show();
}

CevapAlıntı
Gönderildi : 23/11/2017 00:38
Murat güler
(@muratguler)
Üye

[quote user="Volkan Alkılıç"]

Aşağıdaki kod yardımcı olacaktır;

 

void Main()
{
System.Windows.Forms.Form form = new System.Windows.Forms.Form();
Button button = new Button();
button.Text = "Başla";
button.Dock = DockStyle.Bottom;
Button button2 = new Button();
button2.Text = "0";
button2.Dock = DockStyle.Bottom;
button.Click += (sender, args) =>
{
using (BackgroundWorker worker = new BackgroundWorker())
{
worker.DoWork += (s, e) =>
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(100);
button2.BeginInvoke((Action)(() =>
{
button2.Text = i.ToString();

}));

}

};
worker.RunWorkerCompleted += (s, e) =>
{
};
worker.RunWorkerAsync();
}
};
form.Controls.Add(button);
form.Controls.Add(button2);
form.Show();
}

[/quote]

 

Teşekkür ederim

CevapAlıntı
Konu başlatıcı Gönderildi : 24/11/2017 17:44
Paylaş: