我有這應該在屏幕上移動圖像的方法運行狗類:運行方法同時
public bool Run()
{
Point p = PictureBoxDog.Location;
while(p.X < 530)
{
int movement = Randomizer.Next(0, 3);
p.X += movement;
PictureBoxDog.Location = p;
}
if (Location == 4) //Incomplete section.
return true;
else
return false;
}
這種方法是,其中4個狗對象創建一個按鈕單擊事件和被叫每個對象調用Run方法:
private void button1_Click(object sender, EventArgs e)
{
Dog dog1 = new Dog(pictureDog1);
Dog dog2 = new Dog(pictureDog2);
Dog dog3 = new Dog(pictureDog3);
Dog dog4 = new Dog(pictureDog4);
dog1.Run();
dog2.Run();
dog3.Run();
dog4.Run();
}
的問題是,每一種方法執行一個接一個,不能同時。我希望每個方法同時運行。如果我刪除了while語句,那麼所有的方法都會同時執行,但是在while循環中,它們會一個接一個地執行。有關如何解決這個問題的任何建議,非常感謝。而不while循環運行方法:
public bool Run() //Dog1.Run()
{
Point p = PictureBoxDog.Location;
int movement = Randomizer.Next(0, 30);
//Location += movement;
p.X += movement;
PictureBoxDog.Location = p;
if (Location == 4) //Incomplete code.
return true;
else
return false;
}
添加一個計時器並從那裏調用方法。那麼,如果你不知道自己在做什麼,那麼你就不必亂用線程,這會導致UI元素出現問題。 –