在C#的界面应用里,经常会遇到线程里计算得到的数据,要更新到界面上。
但是线程与界面线程一般不是同一个线程,不能直接调用更新,需要采用委托的方式来更新。
意思就是说,要线程把数据定义更新的方法之后,把指针发送给界面线程来执行。
要实现这样的功能有很多种写法,但是最简单的写法就是采用委托delegate。
它支持下面这样的写法:
delegate 运算符创建一个可以转换为委托类型的匿名方法。 匿名方法可以转换为 System.Action 和 System.Func<TResult> 等类型,用作许多方法的参数。
Func<int, int, int> sum = delegate (int a, int b) { return a + b; };
Console.WriteLine(sum(3, 4)); // output: 7
备注
lambda 表达式提供了一种更简洁和富有表现力的方式来创建匿名函数。 使用 => 运算符构造 Lambda 表达式:
Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4)); // output: 7
有关 lambda 表达式功能的更多信息&#