有人可以解释这段代码中的语法吗?
Invoke((MethodInvoker)
(
() =>
{
checkedListBox1.Items.RemoveAt(i);
checkedListBox1.Items.Insert(i, temp);
checkedListBox1.Update();
}
)
);
我正在使用需要更新部分UI的后台工作者,因此我使用了它。它有效,但我不知道空()和=>的意思。
答案 0 :(得分:1)
()和=>是lambda expression。
Action a = () => {
//code here
}
是Action
类型的委托,它执行块中的代码。
Func<string> f = () => {
//code here
return "string";
}
是Func<string>
类型的委托,它执行块中的代码,然后返回一个字符串。
Func<int, int, string> f = (i, j) => {
//code here
return "string"+i+j;
}
是类型Func<int, int, string>
的委托,它在代码块中有两个引用i和j的int参数,并返回一个字符串。
等等...
答案 1 :(得分:1)
答案 2 :(得分:1)
表示Lambda eExpression。 epmty括号表示它不接受任何参数。
虽然这个片段似乎缺少某些内容,但不要认为它会编译。 w ^
hat Invoke会调用UI线程。当您进行处理时,您希望在后台线程上执行此操作,并且只对UI线程进行短暂调用。这样你就可以保持UI响应。
因此,这个snippts将一项工作(将项目添加到Combobox)传递给UI线程以完成它。后台线程无法直接在UI线程上执行操作。
关心GJ