Witam
Mam problem z poniższym kodem, ktoś może wyjaśnić (w miarę prostymi słowami) dlaczego jest lipa ? Działa, jeśli pętla while jest zakomentowana.
public Form1()
{
InitializeComponent();
for (int i = 0; i < 10; i++) UpdateTextBox("Hello");
Thread.Sleep(1000);
Thread t1 = new Thread(Worker);
t1.Start();
/*while (t1.IsAlive)
{
Thread.Sleep(1000);
}*/
UpdateTextBox("Goodbye");
}
public void Worker()
{
for (int i = 0; i < 10; i++)
{
UpdateTextBox("1");
Thread.Sleep(1000);
}
}
public delegate void UpdateTextBoxCallback(string s);
public void UpdateTextBox(string s)
{
if (textBox1.InvokeRequired)
{
textBox1.Invoke(new UpdateTextBoxCallback(this.UpdateTextBox), s);
}
else
{
textBox1.AppendText(s + " ");
textBox1.Refresh();
}
}