private void HeartRateForm_Load(object sender, EventArgs e) { UpdateLabelFont(); Hide(); Size = _settings.UIWindowSize; try { // InitiateDefault is blocking. A better UI would show some type // of status during this time, but it's not super important. _service.InitiateDefault(); } catch (Exception ex) { MessageBox.Show( $"Unable to initialize bluetooth service. Exiting.\n{ex.Message}", "Fatal exception", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(-1); } _service.HeartRateUpdated += Service_HeartRateUpdated; UpdateUI(); }
private void WatchdogThread() { while (!_isDisposed && !_service.IsDisposed) { var needsRefresh = false; lock (_sync) { if (_isDisposed) { return; } if (_lastUpdateTimer.Elapsed > _timeout) { needsRefresh = true; _lastUpdateTimer.Restart(); } } if (needsRefresh) { Debug.WriteLine("Restarting services..."); _service.InitiateDefault(); } Thread.Sleep(10000); } Debug.WriteLine("Watchdog thread exiting."); }