Методы по отдельности работают, но когда хочу выполнить их с помощь многопоточности ничего не происходит.
private void buttonFly_Click(object sender, EventArgs e)
{
Operator operator1 = new Operator(pictureBoxQuad1, pictureBoxMehan1, this.Width, this.Height);
Operator operator2 = new Operator(pictureBoxQuad2, pictureBoxMeh2, this.Width, this.Height);
Thread myThread1 = new Thread(operator1.StartFly);
Thread myThread2 = new Thread(operator2.StartFly);
myThread1.Start();
myThread2.Start();
}
public class Operator
{
System.Windows.Forms.Timer timer;
Quadrocopter Quadrocopter;
Mehanic1 Mehanic;
PictureBox PictureBoxQuad;
PictureBox PictureBoxMehan;
public Operator (PictureBox PictureBoxQuad, PictureBox PictureBoxMehan, int Width, int Height)
{
this.PictureBoxQuad = PictureBoxQuad;
this.PictureBoxMehan = PictureBoxMehan;
Quadrocopter = new Quadrocopter(Width, Height, PictureBoxQuad.Width, PictureBoxQuad.Height, PictureBoxQuad.Location); ;
Mehanic = new Mehanic1();
Quadrocopter.NotifyToFix += Mehanic.GoToFix;
timer = new System.Windows.Forms.Timer();
timer.Tick += MoveQuadrocopter;
}
public void StartFly()
{
timer.Start();
Thread.Sleep(300);
}
void MoveQuadrocopter(Object sender, EventArgs e)
{
if (!Quadrocopter.IsQuadracFault)
{
timer.Interval = 100;
PictureBoxQuad.Location = Quadrocopter.Execute();
}
else
{
timer.Interval = 1000;
PictureBoxMehan.Location = Quadrocopter.Execute();
}
}
}