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(); } }
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; } }