创建委托的3种方式:
using System;
using System.Threading.Tasks;
class MyClass
{
public int Get10() // Func<int> compatible
{
return 10;
}
public async Task DoWorkAsync()
{
//方式1、先使用Get10 方法创建名为ten的Func<int>委托
Func<int> ten = new Func<int>( Get10 );
//再将该委托用于Task.Run方法
int a = await Task.Run( ten );
//方式2、直接在Task.Run方法的参数列表中,创建一个Func<int>委托
int b = await Task.Run( new Func<int>( Get10 ) );
//方式3、在Task.Run方法的参数列表中,使用Lambda表达式---将隐士的转换为一个委托
int c = await Task.Run( () => { return 10; } );
Console.WriteLine( "{0} {1} {2}", a, b, c );
}
}
class Program
{
static void Main()
{
Task t = ( new MyClass() ).DoWorkAsync();
t.Wait();
Console.Read();
}
}
输出结果:10 10 10