smart coder=smart code ++

高并发,高性能,分布式系统和服务器端设计
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

多任务编程(一) 开始任务

Posted on 2010-06-27 19:19  smart coder  阅读(1140)  评论(0编辑  收藏  举报

任务编程是.net 4.0提供应对平行程序开发的一套框架,该框架的相关类在System.Thread.Task命名空间下.我们将通过一系列文章来介绍该框架的功能和应用开发。

1.创建任务

创建任务有两种方法:第一种是新建一个task对象,然后调用Start方法执行任务。第二种方法是通过工厂方法直接执行任务项。

示例代码:

 

运行结果:

创建任务的时候有四种选项,通过设置TaskCreationOption的值来选择

  1. None 默认创建选项
  2. PreferFairness 该选项告诉任务调度器对待任务公平处理,没有优先级之分。
  3. LongRunning  该选项告诉任务调度器该任务是一个执行时间较长的任务,以便任务调度器优化。
  4. AttachedToParent 该选项指明了任务之间的父子关系。

关于这些选项的使用后面会做相关介绍。

2. 传递状态

我们可通过传递一个System.Action<object>的实例对象的方式给任务传递状态变量。

示例代码:

运行结果:

3.获取结果

如果希望获取任务执行的结果,那么在创建任务的时候必须创建一个Task<T>对象,T表示你想要返回参数类型。通过Task对象的Result属性可获取任务执行结果.

示例代码如下:

运行结果:

这里大家会担心我的任务是异步执行的,获取结果时无法正确获取。其实这里的获取结果是阻塞的操作即直到获取到结果才返回。

今天主要介绍了任务编程的一些基本知识,下一篇文章中我将介绍任务取消以及等待.