C# Task的使用
1。Task的使用
创建一个Task,有三种方式
//第一种
Task t1 = new Task(() =>
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")+ ":Task创建完成1");
});
//启动task
t1.Start(); //第二种
//Task工厂,Task自动启动
Task t2 = Task.Factory.StartNew(() =>
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") + ":Task创建完成2");
}); //第三种
Action action = new Action(Test);
Task t3 = new Task(action);
t3.Start();
public static void Test()
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") +":Task创建完成3"); }
Thread.Sleep();
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") +":线程完成");
注:t1、t2、t3任务同时开启时,为异步执行。如下图:
如果想同步执行,使用 Wait();
Task t1 = new Task(() =>
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")+ ":Task创建完成1");
});
//启动task
t1.Start(); t1.Wait();
//Task工厂,Task自动启动
Task t2 = Task.Factory.StartNew(() =>
{ Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") + ":Task创建完成2"); });
t2.Wait(); Action action = new Action(Test);
Task t3 = new Task(action);
t3.Start();
t3.Wait(); Thread.Sleep();
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") +":线程完成"); public static void Test()
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") +":Task创建完成3"); }
当有多个Task进行同步执行时。可使用
Task.WaitAll(t1,t2,t3);
注:这里t1、t2、t3任务之间执行先后顺序为异步。
C# Task的使用的更多相关文章
- Concepts:Request 和 Task
当SQL Server Engine 接收到Session发出的Request时,SQL Server OS将Request和Task绑定,并为Task分配一个Workder.在TSQL Query执 ...
- .Net多线程编程—任务Task
1 System.Threading.Tasks.Task简介 一个Task表示一个异步操作,Task的创建和执行是独立的. 只读属性: 返回值 名称 说明 object AsyncState 表示在 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
- Openstack Periodic Task
Openstack Periodic Task 周期性任务在各个模块的manager.py(computer,scheduler,cell,network)中添加. 添加方法:在模块manager类实 ...
- MapReduce剖析笔记之三:Job的Map/Reduce Task初始化
上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列 ...
- [Java定时器]用Spring Task实现一个简单的定时器.
今天做一个项目的的时候需要用到定时器功能.具体需求是: 每个月一号触发一次某个类中的方法去拉取别人的接口获取上一个月份车险过期的用户.如若转载请附上原文链接:http://www.cnblogs.co ...
- 定时管理器框架-Task.MainForm
入住博客园4年多了,一直都是看别人的博客,学习别人的知识,为各个默默无私贡献自己技术总结的朋友们顶一个:这几天突然觉得是时候加入该队列中,贡献出自己微弱的力量,努力做到每个月有不同学习总结,知识学习的 ...
- Task三个列子的分享
这次要分享的是C#Task任务的几个列子,感觉最实用的是封装的分页任务执行方法,这个方法步奏也是目前在我工作中执行多任务常用的,不知道各位也有这用的情况,那么开始吧. 1.顺序任务执行 //顺序任务执 ...
- webapi+Task并行请求不同接口实例
标题的名称定义不知道是否准确,不过我想表达的意思就是使用Task特性来同时请求多个不同的接口,然后合并数据:我想这种场景的开发对于对接过其他公司接口的人不会陌生,本人也是列属于之内,更多的是使用最原始 ...
随机推荐
- 「自己开发直播」rtmp-nginx-module实现直播状态、观看人数控制
这是自己搭建直播服务器.开发直播平台系列的文章,前面两篇文章分别为: 通过Nginx-rtmp-module搭建直播服务器并实现直播 实现nginx-rtmp-module多频道输入输出与权限控制 这 ...
- spring-session之二:简单配置
官方示例:https://docs.spring.io/spring-session/docs/current/reference/html5/#samples 配置Spring Session 在W ...
- spring data mongodb 操作
xml配置(mongo集群方式): <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=& ...
- Windows Media Player 打不开怎么办
1. 右键VS工具箱的空白处; 2. 打开工具箱, 选择com组件→找到windows media player 3. 如果这里没有发现 windows Media Player怎么办? , 以win ...
- jQuery笔记——DOM操作
在 JavaScript 中,DOM 不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性.扩展性.在 jQuery 中,已经将最常用的 DOM 操 作方法进行了有效封装,并且不需要考虑浏览器的 ...
- 04.CSS的继承性和层叠性
CSS有两大特性: 继承性和层叠性 继承性 面向对象语言都会存在继承的概念 , 在面向对象语言中, 继承的特点: 继承了父类的属性和方法. 那么 css 就是在设置属性的 , 不会牵扯到方法 ...
- SpringMVC 接收表单数据的方式
1.@RequestParam @RequestMapping(value = "/xxxx.do") public void create(@RequestParam(value ...
- Spring Cloud Eureka 2 (Eureka Server搭建服务注册中心)
工具:IntelliJ IDEA 2017.1.2 x64.maven3.3.9 打开IDE file===>new===>project next next 选择相应的依赖 next ...
- rdlc设置指定列隐藏
此用户帐户对提案名称列不可见
- C#使用windows服务定时调用api接口
使用VS创建windows服务项目: 创建好项目 会出现一个设计界面 右键弹出对话框 选择添加安装程序 名字什么的自己可以改: 项目目录: 打开项目中的ProjectInstaller.Design ...