Witam,
napisałem taki oto prosty kod, który ma "rozwijać" panel:
delegate void Delegat();
private void button1_Click(object sender, EventArgs e)
{
panel1.BackColor = Color.Red;
panel1.Height = 0;
System.Threading.Thread t = new System.Threading.Thread(() =>
{
if (panel1.InvokeRequired)
{
panel1.Invoke((Delegat)delegate
{
for (int i = 0; i < 30; i++)
{
panel1.Height += 5;
System.Threading.Thread.Sleep(100);
}
});
}
});
t.Start();
}
wszystko ładnie wygląda, panel jest w miare płynnie rysowany, ale... podczas rozwijania panelu(czyli na te 3 sekundy) blokowana jest cała aplikacja, to znaczy nie mozna jej przesuwać, klikać buttonów znajdujących się na formie itp.
Moje pytanie brzmi: Dla czego? Przecież jest to osobny wątek?
I jak temu zaradzić?
Z góry dzięki za pomoc:)