Windows Phone 来自 HRESULT 的异常:0x8001010E (RPC_E_WRONG_THREAD)

Windows Phone Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)

我的 Windows 运行时应用程序读取 NDEF NFC 标签。 当 App 读取 NFC-Tag 正确时,我的方法 message received 将打开。

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;
}

当我想把这个数据设置到一个textfield时,每次都会抛出一个异常: HRESULT 异常:0x8001010E (RPC_E_WRONG_THREAD)

您需要先发货:

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

编辑:显然这并不总是最好的解决方案。如果您仍然收到该错误,请改为这样做:Run code on UI thread in WinRT