У меня есть класс Dog с методом Run, который должен перемещать изображения по экрану:
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;
}