public void TicketAgencyFunc() { ThemePark park = new ThemePark(); for (int i = 0; i < 10; i++) { Thread.Sleep(1000); int price = park.getPrice(); Console.WriteLine("Theme Park {0} has everyday low price of ${1} each ticket", Thread.CurrentThread.Name, price); } }
public void ThemeParkFunc() { for (int i = 0; i < 50; i++) { Thread.Sleep(500); // Take the order from the queue of the orders; // Decide the price based on the orders int newTicketPrice = priceChange.Next(5, 10); Console.WriteLine("New Price is {0}", newTicketPrice); ThemePark.ChangePrice(newTicketPrice); } }
static void Main(string[] args) { ThemePark disneyLand = new ThemePark(); Thread processTickets = new Thread(new ThreadStart(disneyLand.ThemeParkFunc)); processTickets.Start(); // start one consumer thread processTickets.Name = "processTickets"; TicketAgency touristCenter = new TicketAgency(); ThemePark.priceCut += new priceCutEvent(touristCenter.TicketOnSale); Thread[] ticketAgencies = new Thread[3]; for (int i = 0; i < 3; i++) { // Start n ticketAgency threads ticketAgencies[i] = new Thread(new ThreadStart(touristCenter.TicketAgencyFunc)); ticketAgencies[i].Name = (i + 1).ToString(); ticketAgencies[i].Start(); } }