-1

我正在尝试从连接硬件的端口获取值。我已成功从端口获取值,但是当我尝试填充此值时,它会出现以下错误

“调用线程无法访问此对象,因为不同的线程拥有它”

这是我的代码

private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    try
    {
        string strAck = port.ReadExisting();

        if (!string.IsNullOrWhiteSpace(strAck))
        {
            txtvalue = strAck;            
        }
    }            
    catch(Exception ex)
    {    
    }
}
4

1 回答 1

0

您确实应该在发布此问题之前搜索您的问题的答案,因为之前已在此处多次回答。简短的回答是您必须在 UI 线程上设置值。你会这样做:

this.Dispatcher.Invoke((Action)(() =>
{
    string strAck = port.ReadExisting();
    if (!string.IsNullOrWhiteSpace(strAck))
    {
        txtvalue = strAck;            
    }
}));
于 2013-08-27T10:00:12.720 回答