2
我正在創建一個Windows 8.1電話應用程序。在UI上有一個按鈕和文本框(稱爲txtStatus)Band應用程序稱爲一個接口,被編組爲不同的線程
基本上,當我在UI點擊一個按鈕,下面的代碼序幕(只有一些被示出):
private async void btnStart_Click(object sender, RoutedEventArgs e)
{
try
{
// Get the list of Microsoft Bands paired to the phone.
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{
txtStatus.Text = "This sample app requires a Microsoft Band paired to your device. Also make sure that you have the latest firmware installed on your Band, as provided by the latest Microsoft Health app.";
return;
}
// Connect to Microsoft Band.
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
bandClient.SensorManager.HeartRate.ReadingChanged += HeartRate_ReadingChanged;
await bandClient.SensorManager.HeartRate.StartReadingsAsync();
// Receive Accelerometer data for a while, then stop the subscription.
await Task.Delay(TimeSpan.FromSeconds(50));
await bandClient.SensorManager.HeartRate.StopReadingsAsync();
}
}
catch (Exception ex)
{
}
private void HeartRate_ReadingChanged(object sender, Microsoft.Band.Sensors.BandSensorReadingEventArgs<Microsoft.Band.Sensors.IBandHeartRateReading> e)
{
txtStatus.Text = string.Format("Current Heart Rate is: {0}", e.SensorReading.HeartRate.ToString());
}
當我運行該代碼,它在barfs在處理程序中下面的行:
txtStatus.Text = string.Format("Current Heart Rate is: {0}", e.SensorReading.HeartRate.ToString());
異常消息如下:
的一個應用程序稱爲一個界面,編組爲一個不同的線程 。 (從HRESULT異常:0x8001010E (RPC_E_WRONG_THREAD))
這聽起來像UI線程和傳感器讀線程是不同的。任何有關如何使用同一個線程的建議。或者如何在兩個線程之間傳遞數據?
感謝期待。