我正在尝试从附加硬件的PORT获取值。我成功从端口获取值但是当我尝试填充此值时会出现以下错误
“调用线程无法访问此对象,因为其他线程拥有它”
这是我的代码
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
string strAck = port.ReadExisting();
if (!string.IsNullOrWhiteSpace(strAck))
{
txtvalue = strAck;
}
}
catch(Exception ex)
{
}
}
答案 0 :(得分:0)
在发布此问题之前,您确实应该搜索问题的答案,因为之前已经多次回答过这个问题。简短的回答是你必须在UI线程上设置值。你会这样做:
this.Dispatcher.Invoke((Action)(() =>
{
string strAck = port.ReadExisting();
if (!string.IsNullOrWhiteSpace(strAck))
{
txtvalue = strAck;
}
}));