线程 task pritce

 

1.使用task类创建并执行简单任务

    使用task的构造函数来创建 任务,并调用start方法来启动任务,执行异步操作

   aitAll用于等待提供的所有 System.Threading.Tasks.Task 对象完成执行过程和Wait用于等待提供的任一个 

 

等待的方法还有2个 一个是waitall,另外一个是waitnay

//等待所有任务完成  
public static void WaitAll(params Task[] tasks);
//等待任意一个任务完成
public static int WaitAny(params Task[] tasks);

 

 

 

2. 等待任务的完成 并获取返回值

  使用任务执行异步操作时,很重要的一定就是 得到异步 操作完后的返回值 

  wait方法 可以等待 任务的执行完成 。

 

 

 

代码如下: 输出  1到3的数的总和

 

 

 

 结果如下:

 

3.    使用ContinueWith 在任务完成时 启动一个新任务


在 wait方法 等待一个 任务 时,有可能 会阻塞线程, 为了解决这个问题 ,我们可以使用ContinueWith方法
他能在一个任务完成时自动启动一个新的任务来 处理执行结果

 

 上述示例中任务不是等待完成来显示执行结果,而是使用ContinueWith方法,它能够知道任务在什么时候完成并启动一个新的任务来执行任务完成后的处理。

 

4.  创建父子任务和任务工厂的使用

   通过Task类创建的任务是顶级任务,可以通过使用 TaskCreationOptions.AttachedToParent
   标识把这些任务与创建他的任务相关联,所有子任务全部完成以后父任务才会结束操作

结果如下:

 

posted @ 2018-01-10 11:15  Hans.NET  阅读(160)  评论(0编辑  收藏  举报