Mercurial > silverbladetech
view MetroWpf/FxRates.Service/PricingService.cs @ 60:fc62c971a117
upload to blog
author | Steven Hollidge <stevenhollidge@hotmail.com> |
---|---|
date | Sat, 21 Apr 2012 21:19:39 +0100 |
parents | a8b50a087544 |
children |
line wrap: on
line source
using System; using System.Threading; using System.Threading.Tasks; using FxRates.Common; using System.Collections.Generic; namespace FxRates.Service { public class PricingService : IPricingService { PriceFactory factory; bool _isRunning = false; public bool IsRunning { get { return _isRunning; } } public PricingService() { factory = new PriceFactory(); } public void Start() { Task.Factory.StartNew(() => { _isRunning = true; while (_isRunning) { Thread.Sleep(10); if (PriceUpdate == null) continue; var latestPrice = factory.GetNextPrice(); PriceUpdate(null, new PriceUpdateEventArgs { LatestPrice = latestPrice }); } }); } public void Stop() { _isRunning = false; } public List<FxRate> GetFullCurrentPrices() { return factory.CurrentPrices; } public event EventHandler<PriceUpdateEventArgs> PriceUpdate; } }