繁体   English   中英

这条指令是什么意思?

[英]What does this instruction mean?

我正在使用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();
    }
}

所以问题是: - 表单传递给函数的是什么? 我不明白() =>的含义。 - 该功能作为参数接收什么?

有三个有趣的部分:

  1. InvokeOnUiThreadIfRequired :此代码可能会检查调用者是否在UI线程上。 由于不允许您从另一个线程更改UI而不是thr UI线程,因此此代码是必需的。

  2. () =>是一个lambda表达式,后面跟着一个匿名委托(投射在一个Action ,它实际上是一个没有参数且没有返回值的方法)来执行。 通过这种方式,您可以将对某些代码的调用传递给另一个方法。

  3. InvokeOnUiThreadIfRequired方法是一种扩展方法 它允许您将方法“附加”到您不拥有的另一种类型的实例,因为它是该类的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM