5

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以前の呼び出しからまだ設定されている間に設定しようとしているのです。

4

1 に答える 1