Exemplo n.º 1
0
        public void queueTasks(ComCreator comCreator)
        {
            this.tasks.AddRange(comCreator.getListTasks());

            /** on vide la liste vu qu'on a délégué toutes les taches à l'exécutor **/
            comCreator.getListTasks().Clear();
        }
Exemplo n.º 2
0
        /** Constructeur  **/
        public TaskCommand(T message, ComCreator comCreator)
        {
            this.message      = message;
            modeCommunication = comCreator;

            //on ajoute la tache dans le comCreator
            comCreator.getListTasks().Add(this);
        }
Exemplo n.º 3
0
        /** Constructeur passant par Communication to have le nombre de threads **/
        public TaskCommandExecutor(ComCreator comCreator)
        {
            int nbThreads = comCreator.getNumThreads();

            tasks   = new List <Command>();
            threads = new List <Thread>(nbThreads);

            for (int iterateurThread = 0; iterateurThread < nbThreads; iterateurThread++)
            {
                Thread newThread = new Thread(new ThreadStart(Work))
                {
                    Name = "Thread " + (iterateurThread)
                };
                newThread.Start();
                threads.Add(newThread);
            }
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            /** il faut mettre en lien le flow et la tache peut etre avec write **/
            Flow flow = new Flow();

            Console.WriteLine("Flow OK");


            //Com creator
            ComCreator comCreator = new ComCreator(2, flow);

            Console.WriteLine("ComCreator OK");


            //Flow Decorator
            FlowDecorator flowDecorator = new FlowDecorator(flow);

            Console.WriteLine("FlowDecorator OK");

            //Command Executor
            TaskCommandExecutor commandExecutor = new TaskCommandExecutor(comCreator);

            Console.WriteLine("Executor OK");


            //création de 3 taches
            TaskCommand <String> tache1 = new TaskCommand <string>("Message1", comCreator);

            Console.WriteLine("Tache1 OK");
            TaskCommand <String> tache2 = new TaskCommand <string>("Message2", comCreator);

            Console.WriteLine("Tache2 OK");
            TaskCommand <String> tache3 = new TaskCommand <string>("Message3", comCreator);

            Console.WriteLine("Tache3 OK");

            Console.ReadLine();
        }