码迷,mamicode.com
首页 > Windows程序 > 详细

C# Task

时间:2019-01-28 01:02:25      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:reading   方法   接收   wait方法   tar   不用   获取   continue   action   

Task是一种基于任务的编程模型。它与thread的主要区别是,它更加方便对线程进程调度和获取线程的执行结果。

Task类和thread类,前者接收的是Action委托类型,后者接收的是Func委托类型。

Task创建:

(1)直接创建

var task1 = new Task(() =>{System.Threading.Thread.Sleep(1000);});

task1.Start();

(2)工厂创建

Task.Factory.StartNew(() = {});

(3)Run运行

Task.Run(() =>{});

注:

开启新任务的方法:Task.Run()或者Task.Factory.StartNew(),开启的是后台线程

要在主线程中等待后台线程执行完毕,可以使用Wait方法(会以同步的方式来执行)。不用Wait则会以异步的方式来执行。

thread和Task的区别,thread new多少个就会创建多少个线程,而task是利用线程池中的线程。

Task其他方法:

Task.Wait(); 阻塞当前线程

Task.WaitAll(); 阻赛当前线程

Task.WaitAny(); 阻塞当前线程直到有任意一个任务执行完毕

Task.ContinueWith(task=>{});执行完上一个任务后继续执行,并将上一个任务传递给下一个代码块。

C# Task

标签:reading   方法   接收   wait方法   tar   不用   获取   continue   action   

原文地址:https://www.cnblogs.com/xiaoerduo/p/10328019.html

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