// Methods public Boid(Rect3D Aviary, Vector3D Place, int NumBoids, int Index, MainWindow MainWindow) { this.Aviary = Aviary; this.NumBoids = NumBoids; this.Place = Place; this.Index = Index; this.MainWindow = MainWindow; var j = (MainWindow.SCALABLE) ? Join.Create<Join.Scalable>(3) : Join.Create<Join.LockBased>(3); j.Initialize(out Start); j.Initialize(out Toggle); j.Initialize(out Lock); if (MainWindow.SYNCHRONOUS) j.When(Start).Do(CaseStartSync); else j.When(Start).Do(CaseStartAsync); j.When(Toggle).And(Lock).Do(CaseToggle); Lock(); }