public static void RaisePriceChangeEvent(PriceChangeEventArgs e) { foreach (PriceChangeEventHandler h in _events.Values) { h(null, e); } }
//This event handler runs when a PriceChange event is raised. //The client's PriceChange service operation is invoked to provide notification about the price change. public void PriceChangeHandler(object sender, PriceChangeEventArgs e) { if (SampleService.AsyncNotify) { callback.PriceChangeAsync(e.Item, e.Price, e.Change); } else { callback.PriceChange(e.Item, e.Price, e.Change); } }
public void PublishPriceChange(string item, double price, double change) { Stopwatch sw = Stopwatch.StartNew(); PriceChangeEventArgs e = new PriceChangeEventArgs(); e.Item = item; e.Price = price; e.Change = change; SampleService.RaisePriceChangeEvent(e); sw.Stop(); Console.WriteLine("Оповещения отправлены {0} за {1} мс", (SampleService.AsyncNotify ? "асинхронно" : "синхронно"), sw.ElapsedMilliseconds); SampleService.AsyncNotify = !SampleService.AsyncNotify; }