码迷,mamicode.com
首页 > 编程语言 > 详细

线程 task pritce

时间:2018-01-10 14:09:18      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:log   color   sys   param   问题   阻塞   bubuko   获取   blog   

 

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
   标识把这些任务与创建他的任务相关联,所有子任务全部完成以后父任务才会结束操作

技术分享图片

结果如下:

技术分享图片

 

线程 task pritce

标签:log   color   sys   param   问题   阻塞   bubuko   获取   blog   

原文地址:https://www.cnblogs.com/bingyizhihun/p/8257569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!