你能帮我解释一下吗:
someformobj.BeginInvoke((Action)(() =>
{
someformobj.listBox1.SelectedIndex = 0;
}));
你能告诉我如何使用 begininvoke
吗?
什么是 Action
类型?
为什么有空白括号 ()
?
=>
是什么意思?
最佳答案
Action
是 .NET 框架提供的一种委托(delegate)类型。 Action
指向一个没有参数且不返回值的方法。
() =>
是 lambda expression句法。 Lambda 表达式不是 Delegate
类型。 Invoke 需要 Delegate
,因此 Action
可用于包装 lambda 表达式并向 Invoke()
提供预期的 Type
Invoke
导致所述 Action
在创建控件窗口句柄的线程上执行。经常需要更改线程以避免异常
。例如,如果在需要 Invoke 时尝试在 RichTextBox
上设置 Rtf
属性,而不先调用 Invoke,则 跨线程操作无效
将抛出异常。在调用 Invoke 之前检查 Control.InvokeRequired
。
BeginInvoke
是 Invoke
的异步版本。异步意味着线程不会阻塞调用者,这与阻塞的同步调用相反。
关于c# - 如何使用 BeginInvoke C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14388136/