Witam wszystkich!
Kod który znajduje się poniżej jest raczej prosty i wiadomo o co w nim chodzi. Problem polega na tym, że po kilkakrotnym naduszeniu przycisku 'A', a co za tym idzie uruchomieniu kilku (ok. 4, 5 - nie ma reguły) nowych wątków program zawiesza się i wyrzuca błąd "Wystąpił problem z aplikacją WindowsFormsApplication1 i zostanie ona zamknięta. Przepraszamy za kłopoty.". I tyle.
Pomocy [!!!] Dlaczego tak się dzieje [!!!] [!!!] [!!!]
klasa Form1:
public partial class Form1 : Form
{
public Graphics g;
public Form1()
{
InitializeComponent();
pictureBox1.Image = new Bitmap(461, 358);
g = Graphics.FromImage(pictureBox1.Image);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A)
{
D d = new D(g, pictureBox1);
ThreadStart ts = new ThreadStart(d.f);
Thread t = new Thread(ts);
t.Start();
}
}
}
klasa D:
class D : Form1
{
public D(Graphics _g, PictureBox _p)
{
this.g = _g;
this.pictureBox1 = _p;
}
public void f()
{
while (true)
{
Random a = new Random();
a.Next(3);
int wspx;
if (a.Next(3) == 1)
wspx = 10;
else
wspx = 50;
this.g.FillRectangle(Brushes.Black, wspx, 10, 20, 20);
this.pictureBox1.Refresh();
Thread.Sleep(100);
}
}
}