1。Task的使用

创建一个Task,有三种方式

 1 //第一种
 2 Task t1 = new Task(() =>
 3             {
 4                 Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")+ ":Task创建完成1");
 5             });
 6             //启动task
 7             t1.Start();
 8
 9 //第二种
10  //Task工厂,Task自动启动
11             Task t2 = Task.Factory.StartNew(() =>
12             {
13                 Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") + ":Task创建完成2");
14             });
15
16 //第三种
17    Action action = new Action(Test);
18             Task t3 = new Task(action);
19             t3.Start();
20 public static void Test()
21         {
22             Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")  +":Task创建完成3");
23
24         }
25   Thread.Sleep(3000);
26             Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") +":线程完成");

View Code

注:t1、t2、t3任务同时开启时,为异步执行。如下图:

如果想同步执行,使用 Wait();

 1   Task t1 = new Task(() =>
 2             {
 3                 Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")+ ":Task创建完成1");
 4             });
 5             //启动task
 6             t1.Start();
 7
 8             t1.Wait();
 9             //Task工厂,Task自动启动
10             Task t2 = Task.Factory.StartNew(() =>
11             {
12
13                 Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") + ":Task创建完成2");
14
15             });
16             t2.Wait();
17
18    Action action = new Action(Test);
19             Task t3 = new Task(action);
20             t3.Start();
21             t3.Wait();
22
23  Thread.Sleep(3000);
24             Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") +":线程完成");
25
26
27
28   public static void Test()
29         {
30             Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")  +":Task创建完成3");
31
32
33         }

View Code

当有多个Task进行同步执行时。可使用

Task.WaitAll(t1,t2,t3);

注:这里t1、t2、t3任务之间执行先后顺序为异步。

转载于:https://www.cnblogs.com/-xyl/p/9318885.html

C# Task的使用相关推荐

  1. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、

    1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...

  2. 完美解决Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...问题

    今天下载一个demo运行出现问题,错误如下图 我的问题是JDK 1.8 版本问题问题,我吧1.8改成1.7运行成功 这个实在app下面的build.gradle 相信大伙在Android开发过程中都避 ...

  3. 安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决

    在androidstuio中运行我的未完项目,报错: Error:Execution failed for task ':app:transformClassesWithDexForDebug'. & ...

  4. Execution failed for task ':app:mergeDebugResources'.

    这个问题就是资源文件重名了, 它下面有提示的路径,根据路径找到位置, 最后把自己不小心帖进去的删除掉即可 大致如下 Execution failed for task ':app:mergeDebug ...

  5. Android关于Task的一些实践之SingleTask, SingleInstance和TaskAffinity

    上一篇文章粗略地介绍了一下关于Android中Task的基本知识.只是实践才是检验真理的唯一标准,所以.今天就来试验一下Task中的launchMode是否真的实现了文档所说的那样. 首先.定义三个A ...

  6. Spark源码分析之七:Task运行(一)

    在Task调度相关的两篇文章<Spark源码分析之五:Task调度(一)>与<Spark源码分析之六:Task调度(二)>中,我们大致了解了Task调度相关的主要逻辑,并且在T ...

  7. 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例...

    NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE ...

  8. C# Task注意事项

    1.在Task中调用主线程控件 Task.Factory.StartNew(() => {}).ContinueWith(task => {this.Invoke(new Action(( ...

  9. activiti任务TASK

    一.概要 设计TASK的表主要是:ACT_RU_TASK,ACT_HI_TASKINST(见参考-activiti表): 任务主要有:人工任务(usertask),服务任务(servicetask)等 ...

  10. Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

    异常Log: Error:Execution failed for task ':app:dexDebug'.  > com.android.ide.common.process.Process ...

最新文章

  1. 用Python分析了1w场吃鸡数据,原来吃鸡要这么玩!
  2. 数据加载很慢_Vaex真香!几秒钟就能处理数十亿行数据,比Pandas、Dask更好用
  3. Python正则表达式之零宽断言(4)
  4. linux 改成utc时间_C++下四种常用的程序运行时间的计时方法总结
  5. set escape on
  6. 回信,我的好朋友王一涵
  7. Python | Socket01 - 创建一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回
  8. Leaflet文档阅读笔记-Zoom levels笔记
  9. leetcode isPalindrome (回文数判断)
  10. PySlowFast 视频理解代码库
  11. 2019上半年软考试题(转)
  12. HTML5 播放视频代码
  13. Three.js入门教程——教不会算我输
  14. 电源管理允许此设备唤醒计算机怎么关掉,允许计算机关闭此设备以节省电量灰色 | MOS86...
  15. 【电力电子技术】SEPIC 电路 与 ZETA 电路
  16. matlab输出箱线图的五个特征值_Matlab绘制箱线图
  17. 什么是穿透式监管,需要投资者做什么?
  18. 时序逻辑电路总结【一】触发器
  19. tile cannot extend outside image
  20. 国开计算机应用基础中考答案,国开电大 计算机应用基础(本) 形考一答案

热门文章

  1. android 动画引擎,一个使用openGL渲染的炫丽Android动画库
  2. python连接mongo_Python连接MongoDB操作
  3. python mac电脑定时关机怎么设置_python实现电脑定时关机
  4. 量子计算机最新研究进程,谷歌在量子计算机领域已取得重大突破,国内的研究进度怎么样了...
  5. 19-7-21 springboot学习
  6. 网站推广期间出现排名异常网站推广专员应如何应对?
  7. 网络推广——网络推广如何安排网站关键词的布局策略?
  8. 企业网络推广——浅析企业网络推广怎样看待企业网站的制作
  9. java excel读取操作,Java 操作 Excel (读取Excel2003 2007,Poi兑现)
  10. 列举某域名下所有二级域名的方法