public void OpenMarket() { lock (_marketStateLock) { if (MarketState != MarketStates.Open) { _timer = new Timer(UpdateStockPrices, null, _updateInterval, _updateInterval); MarketState = MarketStates.Open; BroadcastMarketStateChange(MarketStates.Open); } } }
private void BroadcastMarketStateChange(MarketStates marketState) { switch (marketState) { case MarketStates.Open: Clients.All.marketOpened(); break; case MarketStates.Closed: Clients.All.marketClosed(); break; default: break; } }
public void CloseMarket() { lock (_marketStateLock) { if (MarketState == MarketStates.Open) { if (_timer != null) { _timer.Dispose(); } MarketState = MarketStates.Closed; BroadcastMarketStateChange(MarketStates.Closed); } } }