Я пытаюсь получить частоту сердечных сокращений от Microsoft Band. Он должен обновляться при каждом изменении значения. Затем я пытаюсь отобразить это значение в файле TextBlock
. Сначала я создаю экземпляр IBandClient
и устанавливаю его метод HeartRate.ReadingChanged
следующим образом:
bandClient.SensorManager.HeartRate.ReadingChanged += HeartRate_ReadingChanged;
Затем я пытаюсь обновить значение следующим образом:
private void HeartRate_ReadingChanged(object sender, Microsoft.Band.Sensors.BandSensorReadingEventArgs<Microsoft.Band.Sensors.IBandHeartRateReading> e)
{
HeartRate = e.SensorReading.HeartRate;
}
HeartRate — это набор int
, например:
public int HeartRate
{
get { return (int)GetValue(HeartRateProperty); }
set { SetValue(HeartRateProperty, value); }
}
// Using a DependencyProperty as the backing store for HeartRate. This enables animation, styling, binding, etc...
public static readonly DependencyProperty HeartRateProperty =
DependencyProperty.Register("HeartRate", typeof(int), typeof(MainPage), new PropertyMetadata(0));
Затем текст TextBlock
привязывается к HeartRate
. Однако я продолжаю получать эту ошибку при попытке установить HeartRate
:
Приложение вызвало интерфейс, который был маршалирован для другого потока. (Исключение из HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))
Я предполагаю, что он пытается установить HeartRate
, пока он все еще устанавливается из предыдущего вызова.