Ejemplo n.º 1
0
 public void Felugyel(Munkas munkas)
 {
     this.Felugyelve = munkas;
     if (munkas != null)
     {
         this.Felugyelve.Figyelik = true;
     }
 }
Ejemplo n.º 2
0
 public void FelugyeletVege()
 {
     this.Felugyelve.Figyelik = false;
     this.Felugyelve          = null;
 }
Ejemplo n.º 3
0
 public Rohamosztagos()
 {
     this.ID         = "F" + globalID++;
     this.Felugyelve = null;
 }
Ejemplo n.º 4
0
        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();
        }