首先,我使用VS2005和C#2.0。
我试图从SelectedIndexChanged事件中设置一个组合框” Text属性。 从另一个线程在这里StackOverflow上这是做提出以下方式:
BeginInvoke(new Action(() => someCombobox.Text = "x" ));
现在,首先这将返回一个编译器错误我。 我相信这是因为Action对象在这两个语言规范的行为不同。 在C#2.0,Action对象似乎需要的<T>
在所有声明的结构。 也许我错了,但我想有一个澄清。
什么工作如下:
BeginInvoke(new Action<string>( delegate { someCombobox.Text = "x"; }), new object[] { "" });
然而,它只是似乎很奇怪,我认为我必须用一个类型参数(尤其是因为我不打算传递任何参数)定义的操作对象! 不知怎的,删除这个参数也将使空的新的对象[]过时了,这是我想要的。
谁能帮我简化上述电话吗?
最后,它保证的BeginInvoke将在以后的SelectedIndexChanged完成,因此更新正确的文本组合框” Text属性?
我会很感激学习这些问题的答案。