任务编程是.net 4.0提供应对平行程序开发的一套框架,该框架的相关类在System.Thread.Task命名空间下.我们将通过一系列文章来介绍该框架的功能和应用开发。
1.创建任务
创建任务有两种方法:第一种是新建一个task对象,然后调用Start方法执行任务。第二种方法是通过工厂方法直接执行任务项。
示例代码:
运行结果:
创建任务的时候有四种选项,通过设置TaskCreationOption的值来选择
- None 默认创建选项
- PreferFairness 该选项告诉任务调度器对待任务公平处理,没有优先级之分。
- LongRunning 该选项告诉任务调度器该任务是一个执行时间较长的任务,以便任务调度器优化。
- AttachedToParent 该选项指明了任务之间的父子关系。
关于这些选项的使用后面会做相关介绍。
2. 传递状态
我们可通过传递一个System.Action<object>的实例对象的方式给任务传递状态变量。
示例代码:
运行结果:
3.获取结果
如果希望获取任务执行的结果,那么在创建任务的时候必须创建一个Task<T>对象,T表示你想要返回参数类型。通过Task对象的Result属性可获取任务执行结果.
示例代码如下:
运行结果:
这里大家会担心我的任务是异步执行的,获取结果时无法正确获取。其实这里的获取结果是阻塞的操作即直到获取到结果才返回。
今天主要介绍了任务编程的一些基本知识,下一篇文章中我将介绍任务取消以及等待.