错误 - 调用线程无法访问此对象,因为另一个线程拥有它

时间:2013-08-27 09:36:10

标签: wpf c#-4.0

我正在尝试从附加硬件的PORT获取值。我成功从端口获取值但是当我尝试填充此值时会出现以下错误

“调用线程无法访问此对象,因为其他线程拥有它”

这是我的代码

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

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

1 个答案:

答案 0 :(得分:0)

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

this.Dispatcher.Invoke((Action)(() =>
{
    string strAck = port.ReadExisting();
    if (!string.IsNullOrWhiteSpace(strAck))
    {
        txtvalue = strAck;            
    }
}));