来自Eleven老师示例

        private void btnTask_Click(object sender, EventArgs e)
{
Console.WriteLine();
Console.WriteLine("******************btnTask_Click 异步方法 start {0}********************", Thread.CurrentThread.ManagedThreadId); //Thread thread = new Thread(() => Console.WriteLine("Thread,,{0}", Thread.CurrentThread.ManagedThreadId));
//thread.Start();
//ThreadPool.QueueUserWorkItem(t => Console.WriteLine("ThreadPool,,{0}", Thread.CurrentThread.ManagedThreadId));
//new Action(() => Console.WriteLine("异步调用,,{0}", Thread.CurrentThread.ManagedThreadId)).BeginInvoke(null, null);
//Task task = Task.Run(() => Console.WriteLine("Task,,{0}", Thread.CurrentThread.ManagedThreadId));
//Parallel.Invoke()
Console.WriteLine("Eleven接到一个项目");
Console.WriteLine("沟通需求,确认需求,谈妥价格");
Console.WriteLine("签合同收取50%费用");
Console.WriteLine("高级班筛选学员,组建团队");
Console.WriteLine("需求分析,系统设计,模块划分");
Console.WriteLine("开始干活。。。。");//都是eleven老师干的 所以是主线程 //多人一起干活,,是不是 该用多线程了
TaskFactory taskFactory = new TaskFactory();
List<Task> taskList = new List<Task>();
//有个问题,如果想每个task后都输出一个进度,怎么办? taskList.Add(taskFactory.StartNew(() => this.Coding("backbone", "Client")));//.ContinueWith(
taskList.Add(taskFactory.StartNew(() => this.Coding("滑猪小板", "DB ")));
taskList.Add(taskFactory.StartNew(() => this.Coding("Adan", "WechatClient")));
taskList.Add(taskFactory.StartNew(() => this.Coding("SoWhat", "BackService")));
taskList.Add(taskFactory.StartNew(() => this.Coding("馒头哥", "Protal")));
//有没有又等待,又不卡界面的 (new 一个子线程,全包裹起来,然后waitall) taskList.Add(taskFactory.ContinueWhenAny(taskList.ToArray(), t => Console.WriteLine("第一个完成的获取红包奖励 {0}", Thread.CurrentThread.ManagedThreadId)));
taskList.Add(taskFactory.ContinueWhenAll(taskList.ToArray(), tList => Console.WriteLine("进入一个联调测试阶段 {0}", Thread.CurrentThread.ManagedThreadId))); Task.WaitAny(taskList.ToArray());//等待任意一个任务的完成,会阻塞当前线程
Console.WriteLine("某个模块开发完成后,老师部署起来准备测试"); Task.WaitAll(taskList.ToArray());//等待所有任务的完成,会阻塞当前线程
Console.WriteLine("开发验收完毕,老师收取剩余费用");
Console.WriteLine("项目结束后,老师给大家分钱"); Console.WriteLine("******************btnTask_Click 异步方法 end {0}********************", Thread.CurrentThread.ManagedThreadId);
Console.WriteLine();
}

C# Task多线程的更多相关文章

  1. Task多线程

    Task多线程  1.首先是我们线程之间的启动. 1.这样 Task task = new Task(()=> { // System.Threading.Thread.Sleep(); Con ...

  2. Threading.Tasks.Task多线程 静态全局变量(字典) --只为了记录

    --------------------------------------------------------------后台代码---------------------------------- ...

  3. Task多线程进行多进程

    using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...

  4. Task 实现多线程的模板

        1.Task多线程简单模板   using System; using System.Collections.Generic; using System.Threading.Tasks;   ...

  5. C# -- 使用 Task 执行多线程任务

    C# -- 使用 Task 执行多线程任务 1. 使用 Task 执行多线程任务 class Program { static void Main(string[] args) { Task task ...

  6. 多线程Task

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. C#异步和多线程以及Thread、ThreadPool、Task区别和使用方法

    本文的目的是为了让大家了解什么是异步?什么是多线程?如何实现多线程?对于当前C#当中三种实现多线程的方法如何实现和使用?什么情景下选用哪一技术更好? 第一部分主要介绍在C#中异步(async/awai ...

  8. .NET(C#):await返回Task的async方法

    众所周知,async方法只可以返回void,Task和Task<T>. 对于返回void的async方法,它并不是awaitable,所以其他方法不能用await方法来调用它,而返回Tas ...

  9. 使用Task

    http://www.cnblogs.com/Charltsing/p/taskpoolthread.html task默认对线程的调度是逐步增加的,连续多次运行并发线程,会提高占用的线程数,而等若干 ...

随机推荐

  1. vim 快速搜索的快捷键

    当光标在某个单词上面的时候 按 shift + #键(或 shift + * )就可以了!!! ----------------------------------- If you are worki ...

  2. Unity3d PBR海水渲染

    三层水 博主近期渲染:近期用unity5弄的一些渲染 ---- by wolf96  http://blog.csdn.net/wolf96

  3. 【打CF,学算法——二星级】CF 520B Two Buttons

    [CF简单介绍] 提交链接:Two Buttons 题面: B. Two Buttons time limit per test 2 seconds memory limit per test 256 ...

  4. [Berkeley]弹性分布式数据集RDD的介绍(RDD: A Fault-Tolerant Abstraction for In-Memory Cluster Computing 论文翻译)

    摘要:     本文提出了分布式内存抽象的概念--弹性分布式数据集(RDD,Resilient Distributed Datasets).它同意开发者在大型集群上运行基于内存的计算.RDD适用于两种 ...

  5. Android TP(三)【转】

    本文转载自:http://blog.csdn.net/bi511304183/article/details/9303259 平台信息:内核:linux2.6/linux3.0系统:android/a ...

  6. Bing Maps进阶系列一:初识Bing Maps地图服务

    Bing Maps进阶系列一:初识Bing Maps地图服务 Bing Maps提供了一组WCF的地图服务,使用这些服务我们可以方便的在自己的应用系统里实现地理位置搜索等相关功能.他们分别是地理编码服 ...

  7. CodeForces - 557D Vitaly and Cycle(二分图)

    Vitaly and Cycle time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  8. 杂项-QXM:CFA(特许金融分析师)

    ylbtech-杂项-QXM:CFA(特许金融分析师) 1.返回顶部 1. CFA是“特许金融分析师”(Chartered Financial Analyst)的简称,它是证券投资与管理界的一种职业资 ...

  9. html5拨打电话及发短信

    1.最常用WEB页面一键拨号的电话拨打功能 <a href="tel:15088888888">拨号</a> 2.最常用WEB页面一键发送短信功能: < ...

  10. IOException 简单解决方法

    java.lang.IllegalStateException异常解决方法 这个异常大多数是由文件读取,下载时抛出,但是偶尔也会由类型转换时异常抛出此异常. 错误:Optional int param ...