ich lerne momentan C# und versuche mich an einem WindowsForms-Programm, in welchem ich mit Threads herumspiele. Im Prinzip besteht das Fenster aus einem Button und zwei Textboxen. Beim Klick auf den Button soll in beiden Textboxen gleichzeitig ein Zähler hochlaufen. Bei mir passiert das jedoch schön nacheinander - auch wenn es zufällig erscheint, in welcher Box begonnen wird.
Hier kommt der Code. Ich freue mich auf Ratschläge.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } delegate void SetTextCallback(); private int max = 3000; private void fkt1() { if (InvokeRequired) { SetTextCallback d = new SetTextCallback(fkt1); Invoke(d); } else { for (int j = 0; j <= max; j++) { textBox1.Text = j.ToString(); textBox1.Refresh(); } } } private void fkt2() { if (InvokeRequired) { SetTextCallback d = new SetTextCallback(fkt2); Invoke(d); } else { for (int i = 0; i <= max; i++) { textBox2.Text = i.ToString(); textBox2.Refresh(); } } } private void button1_Click(object sender, EventArgs e) { textBox1.Text = ""; textBox2.Text = ""; Thread t1 = new Thread(fkt1); Thread t2 = new Thread(fkt2); t1.IsBackground = true; t2.IsBackground = true; t1.Start(); t2.Start(); } }
Dieser Beitrag wurde von sentropie bearbeitet: 08. Oktober 2010 - 10:05