public void Felugyel(Munkas munkas) { this.Felugyelve = munkas; if (munkas != null) { this.Felugyelve.Figyelik = true; } }
public void FelugyeletVege() { this.Felugyelve.Figyelik = false; this.Felugyelve = null; }
public Rohamosztagos() { this.ID = "F" + globalID++; this.Felugyelve = null; }
static void Main(string[] args) { sw = new Stopwatch(); List <Munkas> munkasok = Munkas.GetMunkasok(); Task[] munkasTask = new Task[munkasok.Count]; sw.Start(); for (int i = 0; i < munkasTask.Length; i++) { int j = i; munkasTask[j] = new Task(() => { while (!munkasok[j].Elkeszult) { munkasok[j].Lep(); } }); munkasTask[j].Start(); } List <Rohamosztagos> rohamosztagosok = new List <Rohamosztagos>() { new Rohamosztagos(), new Rohamosztagos(), new Rohamosztagos() }; Task[] rohamosztagosTask = new Task[rohamosztagosok.Count]; for (int i = 0; i < rohamosztagosTask.Length; i++) { int j = i; rohamosztagosTask[j] = new Task(() => { while (true) { rohamosztagosok[j].Felugyel((from e in munkasok where e.Figyelik == false && e.Allapot < 100 orderby e.Allapot ascending select e).FirstOrDefault()); Thread.Sleep(3000); rohamosztagosok[j].FelugyeletVege(); } }); rohamosztagosTask[j].Start(); } Task.Run(() => { while (true) { Log(munkasok, rohamosztagosok); Thread.Sleep(300); } }); Task.WaitAll(munkasTask); sw.Stop(); }