从UI以外的其他线程访问组合框控件

时间:2015-02-23 23:54:15

标签: c# winforms

我有一个名为ComboBox的{​​{1}}表单。有时我需要读取当前选择的索引以响应串行消息。代码读取文本框或复选框时没有问题,但是当它读取所选索引时

cableGaugeSelect

我得到一个未处理的例外:

  

“跨线程操作无效:控制'cableGaugeSelect'从其创建的线程以外的线程访问。”

似乎我必须使用委托来从线程之间获取数据,但我发现如何使用委托的所有示例都是如何将文本放入文本框中。我在确定如何创建将检索此信息的委托时遇到了很多麻烦。任何帮助都是适当的

1 个答案:

答案 0 :(得分:2)

如果要触摸控件,则需要在UI线程上执行此操作。您可以使用Control.Invoke()来完成此操作。

cableGuageSelect.Invoke(new Action(() =>
    {
        cableGuage[0] = (byte)cableGuageSelect.SelectedIndex;
    }));