Hallo zusammen!
Ich habe eine kleine, aber für mich äusserst mühsame Frage bezüglich dem Thread.Sleep in einer Funktion drin.
Ich habe eine picturebox, die sich auf Tastendruck automatisch bewegen soll. Das alles ist kein Problem, allerdings ist das bisschen doof, wenn sie das in rasender Geschwindigkeit tut ;D
Daher habe ich mir überlegt, Thread.Sleep einzubauen. Da ich in Programmierung nicht unerfahren bin (C++), weiss ich natürlich, dass damit alles blockiert wird. Daher hab ich bisschen gegoogelt, was denn bei C# bezüglich des Threadings so gilt und bin auf folgenden Code gekommen:
Das Problem ist nun, dass das nichts geändert hat. Der Hauptthread ist immernoch blockiert und nichts geschieht, bis das Ding entfernt ist, leider!
Hat jemand eine Ahnung, was da schief läuft?
Gruss
Cromon
Ich habe eine kleine, aber für mich äusserst mühsame Frage bezüglich dem Thread.Sleep in einer Funktion drin.
Ich habe eine picturebox, die sich auf Tastendruck automatisch bewegen soll. Das alles ist kein Problem, allerdings ist das bisschen doof, wenn sie das in rasender Geschwindigkeit tut ;D
Daher habe ich mir überlegt, Thread.Sleep einzubauen. Da ich in Programmierung nicht unerfahren bin (C++), weiss ich natürlich, dass damit alles blockiert wird. Daher hab ich bisschen gegoogelt, was denn bei C# bezüglich des Threadings so gilt und bin auf folgenden Code gekommen:
Code:
//code, code, code ;D
Moving mov=new Moving(MoveAlong);
Invoke(mov,picbox);
}
}
delegate void Moving(System.Windows.Forms.PictureBox picer);
void MoveAlong(System.Windows.Forms.PictureBox picer)
{
System.Drawing.Point point;
point=picer.Location;
while(point.X<=370)
{
point.X+=1;
picer.Location=point;
Thread.Sleep(250);
}
this.panel1.Controls.Remove(picer);
}
Das Problem ist nun, dass das nichts geändert hat. Der Hauptthread ist immernoch blockiert und nichts geschieht, bis das Ding entfernt ist, leider!
Hat jemand eine Ahnung, was da schief läuft?
Gruss
Cromon