System.Threading.Tasks的作用:
Tasks命名空间下的类试图使用任务的概念来解决线程处理的复杂问题。任务(Task)包含一个操作,以及依赖哪个任务的完成才能开始。
测试用例:
假设有任务A,B,C,D。其中C依赖A和B的完成,而D依赖A的完成。代码该怎么写呢?
代码:
1
TaskFactory factory
=
new
TaskFactory();
2 Task a = factory.StartNew(( new TestAction( " A " , 2 )).Do);
3 Task b = factory.StartNew(( new TestAction( " B " , 5 )).Do);
4 Task c = factory.ContinueWhenAll( new Task[] { a, b }, ((preTasks) => ( new TestAction( " C " , 1 )).Do()));
5 Task d = factory.ContinueWhenAll( new Task[] { a }, ((preTasks) => ( new TestAction( " D " , 1 )).Do()));
2 Task a = factory.StartNew(( new TestAction( " A " , 2 )).Do);
3 Task b = factory.StartNew(( new TestAction( " B " , 5 )).Do);
4 Task c = factory.ContinueWhenAll( new Task[] { a, b }, ((preTasks) => ( new TestAction( " C " , 1 )).Do()));
5 Task d = factory.ContinueWhenAll( new Task[] { a }, ((preTasks) => ( new TestAction( " D " , 1 )).Do()));