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
我的 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