尝试传递函数而不是lambda表达式,最后混淆了为什么行:
button(ng-click="changeMessage();")
不会引发错误。此lambda表达式int t2 = await Task.Run( ()=>Allocate2() );
不返回()=>Allocate2()
。为什么没有错误?
如何使用函数Task
创建没有lambda表达式的任务?
Allocate
答案 0 :(得分:5)
Track = "a"
Time = "b"
Info = "c"
Channel = "d"
Note = "e"
Velocity = "f"
希望您将无参数Task.Run()
或Action
传递给它。
可以将lambda分配给Func
或Action
(视情况而定),这就是为什么用lambda调用Func
为你工作的原因。
如果您不想使用lambda,则必须显式创建Task.Run()
或Action
,并将要调用的方法传递给Func
的构造函数或Action
。
以下演示:
Func
OR:
static void Main()
{
var task = Task.Run(new Action(MyMethod));
}
static void MyMethod()
{
Console.WriteLine("MyMethod()");
}
请注意,如果方法需要一个或多个参数,则此方法无效。在那种情况下,您必须使用lambda。