首页 > Windows开发 > 详细

C# Task

时间:2019-01-27 23:13:56      阅读:262      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!