我正在尝试从一个微软波段获得心率。无论何时值发生变化,它都应该进行更新。然后,我试图在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,而之前的调用还在设置它。
发布于 2015-07-04 01:15:53
尝试实现它,看看它是如何实现的,如果您仍然想要int变量,那么在文本块中显示它时,将它转换回string。
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
Textblock.Text = e.SensorReading.HeartRate.ToString())
}).AsTask();https://stackoverflow.com/questions/31215873
复制相似问题