我正在尝试从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
。