读取属性时,跨线程操作无效

Joh*_*res 4 c# multithreading

我尝试从自定义面板控件中读取属性时收到此错误.该属性返回面板中文本框的值.如何读取从另一个线程返回文本框控件值的属性?我的房产代码示例如下.我并不担心二传手.

以下是eaxct错误消息:跨线程操作无效:控件''从其创建的线程以外的线程访问.

public string Header
{
get
{
   return _HeaderComboBox.Text;
}
set
{
   _HeaderComboBox.Text = value;
}
}
Run Code Online (Sandbox Code Playgroud)

IAb*_*act 6

使用BeginInvoke的MSDN示例

这就是我根据您发布的getter片段实现示例的方法:

public string Header {
    get {
        string text = string.Empty;
        _HeaderComboBox.BeginInvoke(new MethodInvoker(delegate {
            text = _HeaderComboBox.Text;
        }));
        return text;
    }

    set {
        _HeaderComboBox.Text = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

有更优雅的方法,但是,这是一个一般的例子.