private static void ManualSimulator(StockTicker stockTicker) { ////////////////////////////////////////////////////// // A small program to let you enter the Ticks info. // // Symbol X will exit the program // ////////////////////////////////////////////////////// while (true) { Console.Write("enter symbol (or x to exit): "); var symbol = Console.ReadLine(); if (symbol.ToLower() == "x") { break; } Console.WriteLine("enter price: "); decimal price; if (decimal.TryParse(Console.ReadLine(), out price)) { stockTicker.Notify(new StockTick() { Price = price, QuoteSymbol = symbol }); } else { Console.WriteLine("price should be decimal"); } } }
private static void TestConcurrentTicks(StockTicker stockTicker) { ThreadPool.QueueUserWorkItem((_) => stockTicker.Notify(new StockTick() { Price = 100, QuoteSymbol = "MSFT" })); ThreadPool.QueueUserWorkItem((_) => stockTicker.Notify(new StockTick() { Price = 150, QuoteSymbol = "INTC" })); ThreadPool.QueueUserWorkItem((_) => stockTicker.Notify(new StockTick() { Price = 170, QuoteSymbol = "MSFT" })); ThreadPool.QueueUserWorkItem((_) => stockTicker.Notify(new StockTick() { Price = 195.5M, QuoteSymbol = "MSFT" })); }