public void StartPulsing() { lock (_pulsingStateLock) { if (PulsingState != PulsingState.Open) { _timer = new Timer(UpdateStockPrices, null, _updateInterval, _updateInterval); PulsingState = PulsingState.Open; BroadcastPulsingStateChange(PulsingState.Open); } } }
private void BroadcastPulsingStateChange(PulsingState marketState) { switch (marketState) { case PulsingState.Open: Clients.All.startPulsing(); break; case PulsingState.Closed: Clients.All.stopPulsing(); break; default: break; } }
public void StopPulsing() { lock (_pulsingStateLock) { if (PulsingState == PulsingState.Open) { if (_timer != null) { _timer.Dispose(); } PulsingState = PulsingState.Closed; BroadcastPulsingStateChange(PulsingState.Closed); } } }