1

Приложение Windows Runtime читает NDEF NFC-Tag. Когда приложение прочитает NFC-тег, вернется мой метод message received.Windows Phone Исключение из HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)

private void messageReceived(ProximityDevice sender, ProximityMessage message) 
{ 
    device.StopSubscribingForMessage(NFCID); 
    var ndefMessage = NdefMessage.FromByteArray(message.Data.ToArray()); 

    StringBuilder sb = new StringBuilder(); 
    foreach (NdefRecord record in ndefMessage) sb.AppendLine(Encoding.UTF8.GetString(record.Payload, 0, record.Payload.Length)); 

    String data= sb.ToString(); 
    ShowData(data); 
} 

private void ShowData(string data) 
{ 
    tbx.Text = data; 
} 

Когда я хочу, чтобы установить эти данные в текстовое поле, каждый раз исключение: Исключение из HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)

ответ

4

Вы должны послать его первым:

Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
     { 
      tbx.Text = data; 
     }); 

EDIT: Очевидно, что это не всегда лучшее решение. Сделайте это таким образом, если вы все еще получите эту ошибку: Run code on UI thread in WinRT

Смежные вопросы