这个指令是什么意思
本文关键字:意思 是什么 指令 | 更新日期: 2023-09-27 18:24:00
我正在使用cefsharp来构建个人浏览器。一切都很好,但我有一个问题要问你。
这个指令是什么意思?它插入到主窗体中。 this.InvokeOnUiThreadIfRequired(() => urlTextBox.Text = browser.Address);
在项目中,我还有一个 Control 静态类,它实现了 InvokeOnUiThreadIfRequired 函数。
public static void InvokeOnUiThreadIfRequired(this Control control, Action action)
{
if (control.InvokeRequired)
{
control.BeginInvoke(action);
}
else
{
action.Invoke();
}
}
所以问题是:- 表单传递给函数的是什么?我不明白() =>
的含义.- 函数接收什么参数?
有三个有趣的部分:
-
InvokeOnUiThreadIfRequired
:此代码可能会检查调用方是否在 UI 线程上。由于不允许从 UI 线程以外的其他线程更改 UI,因此此代码是必需的。 -
() =>
是一个 lambda 表达式,后面跟着要执行的匿名委托(投影在Action
上,这实际上是一个没有参数和返回值的方法。通过这种方式,您可以将对某些代码的调用传递给另一个方法。 -
InvokeOnUiThreadIfRequired
方法是一种扩展方法。它允许您将方法"附加"到您不拥有的另一种类型的实例,因为它是该类的方法。