Exemplo n.º 1
0
        public void GetCookiesFrom(Bakery bakery)
        {
            var stopwatch = new Stopwatch();
            stopwatch.Start();

            while (bakery.InStock)
            {
                if (stopwatch.ElapsedMilliseconds < Root.BuyingTime) continue;

                bakery.SellCookieTo(this);
                stopwatch.Restart();
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var bakery = new Bakery();
            var bakeryT = new Thread(bakery.Work);
            bakeryT.Start();

            var fred = new RegularCustomer("Fred");
            var ted = new RegularCustomer("Ted");
            var greg = new RegularCustomer("Greg");
            var fredT = new Thread(() => fred.GetCookiesFrom(bakery));
            var tedT = new Thread(() => ted.GetCookiesFrom(bakery));
            var gregT = new Thread(() => greg.GetCookiesFrom(bakery));
            fredT.Start();
            tedT.Start();
            gregT.Start();

            while (true)
            {
                if (bakery.InStock) continue;

                Console.ReadKey();
                break;
            }
        }