Ejemplo n.º 1
0
            public static void CookDinner(IExecutive exec, object userData)
            {
                Console.WriteLine(" {0} : Starting to cook dinner...", exec.Now);

                long code1 = exec.RequestEvent(MakeTurkey, exec.Now, 0.0, null, ExecEventType.Detachable);
                long code2 = exec.RequestEvent(MakeGravy, exec.Now, 0.0, null, ExecEventType.Detachable);
                long code3 = exec.RequestEvent(MakeStuffing, exec.Now, 0.0, null, ExecEventType.Detachable);

                Console.WriteLine(" {0} : We'll wait 'til everything is done before we serve dinner!", exec.Now);
                exec.Join(code1, code2, code3);

                Console.WriteLine(" {0} : Serving dinner!", exec.Now);
            }
Ejemplo n.º 2
0
        private void JoinDetachableSetup(IExecutive exec, object userData)
        {
            DateTime[] whens = new DateTime[3];
            whens[0] = new DateTime(2008, 11, 25, 12, 15, 44);
            whens[1] = new DateTime(2008, 11, 26, 12, 15, 44);
            whens[2] = new DateTime(2008, 11, 27, 12, 15, 44);
            List <long>   eventKeys = new List <long>();
            ExecEventType eet       = ExecEventType.Synchronous;

            for (int i = 0; i < 3; i++)
            {
                if (eet == ExecEventType.Synchronous)
                {
                    eventKeys.Add(exec.RequestEvent(new ExecEventReceiver(DoItWithoutSuspension), whens[i], 0.0, null, eet));
                }
                else if (eet == ExecEventType.Detachable)
                {
                    eventKeys.Add(exec.RequestEvent(new ExecEventReceiver(DoItWithSuspension), whens[i], 0.0, null, eet));
                }
            }
            Console.WriteLine(exec.Now + " : Waiting to join.");
            exec.Join(eventKeys.ToArray());
            Console.WriteLine(exec.Now + " : Done waiting to join.");
        }