public class TestTaskClass
{
public int F1(int a)
{
return a * a;
}
public int F2(int a)
{
return a + a;
}
public int F3(int c)
{
return c * c;
}
public int F4(int b, int d)
{
return b *b + d *d;
}
//
public void test()
{
int a=1;
var featB=Task.Factory.StartNew<int>(()=>F1(a)); //1
var featD = Task.Factory.StartNew<int>(() => F3(F2(a))); //4
var featF = Task.Factory.ContinueWhenAll<int, int>(new[] { featB, featD }, (tasks) => F4(featB.Result, featD.Result));
featF.ContinueWith((t)=>Console.WriteLine("异步计算结果为:"+t.Result.ToString())); //17
//
int b = F1(a);
int d = F3(F2(a));
int f = F4(b, d);
Console.WriteLine("同步计算结果为:" + f.ToString());
}
}