/// <summary>
/// 基于Task的多线程
/// </summary>
public class Tasks
{
public static void TaskAction()
{
Console.WriteLine("********************开始当前线程为{0}", Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("接到一个项目");
Console.WriteLine("沟通,谈价钱");
Console.WriteLine("收去50%的费用......");
Console.WriteLine("需求分析,设计系统");
TaskFactory taskFactory = new TaskFactory();
List<Task> TaskList = new List<Task>();
Action action1 = () => StarPoj("张三");
TaskList.Add(taskFactory.StartNew(action1));
Action action2 = () => StarPoj("李四");
TaskList.Add(taskFactory.StartNew(action2));
Action action3 = () => StarPoj("王五");
TaskList.Add(taskFactory.StartNew(action3));
Action action4 = () => StarPoj("赵六");
TaskList.Add(taskFactory.StartNew(action4)); Action<Task[]> ActAll = new Action<Task[]>(t => Console.WriteLine("开发完成,进行联调,当前线程为{0}", Thread.CurrentThread.ManagedThreadId));
Task taskAll= taskFactory.ContinueWhenAll(TaskList.ToArray(), ActAll);//等待TaskList线程集合完成后再开启ActAll另一个线程 Task.WaitAny(TaskList.ToArray());//等待某一个线程完成再执行
Console.WriteLine("测试,收取20%费用");
//Task.WaitAll(TaskList.ToArray());//等待所有的线程完成
Task.WaitAll(new Task[] { taskAll });//等待taskAll该线程完成后再执行
Console.WriteLine("收钱");
Console.WriteLine("********************结束当前线程为{0}", Thread.CurrentThread.ManagedThreadId);
} public static void StarPoj(string name)
{
Console.WriteLine("{0}开始编码,当前线程为{1}", name, Thread.CurrentThread.ManagedThreadId);
}
}

基于Task的多线程的更多相关文章

  1. C# Winform 基于Task的异步与延时执行

    一.Task的机制   Task位于命名空间System.Threading.Tasks中,是.NET 4.0加入的新模块,其实现机制大致类似于线程池ThreadPool,不过对于ThreadPool ...

  2. Task C# 多线程和异步模型 TPL模型 【C#】43. TPL基础——Task初步 22 C# 第十八章 TPL 并行编程 TPL 和传统 .NET 异步编程一 Task.Delay() 和 Thread.Sleep() 区别

    Task C# 多线程和异步模型 TPL模型   Task,异步,多线程简单总结 1,如何把一个异步封装为Task异步 Task.Factory.FromAsync 对老的一些异步模型封装为Task ...

  3. .Net Core WebAPI 基于Task的同步&异步编程快速入门

    .Net Core WebAPI 基于Task的同步&异步编程快速入门 Task.Result async & await 总结 并行任务(Task)以及基于Task的异步编程(asy ...

  4. 实践基于Task的异步模式

    Await 返回该系列目录<基于Task的异步模式--全面介绍> 在API级别,实现没有阻塞的等待的方法是提供callback(回调函数).对于Tasks来说,这是通过像ContinueW ...

  5. 实现基于Task的异步模式

    返回该系列目录<基于Task的异步模式--全面介绍> 生成方法 编译器生成 在.NET Framework 4.5中,C#编译器实现了TAP.任何标有async关键字的方法都是异步方法,编 ...

  6. 基于Task的异步模式的定义

    返回该系列目录<基于Task的异步模式--全面介绍> 命名,参数和返回类型 在TAP(Task-based Asynchronous Pattern)中的异步操作的启动和完成是通过一个单独 ...

  7. 基于Task的异步模式--全面介绍

    今天是国庆长假第一天,也是今天十月的开始.每到这个时候都是看海的季节-一个看"人海"的季节.反正我是不想在这样一个尴尬期出去放松自己,于是不如在家写写博客,长点本领呢.今天就来给大 ...

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

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

  9. 基于tcp和多线程的多人聊天室-C语言

    之前在学习关于网络tcp和多线程的编程,学了知识以后不用一下总绝对心虚,于是就编写了一个基于tcp和多线程的多人聊天室. 具体的实现过程: 服务器端:绑定socket对象->设置监听数-> ...

随机推荐

  1. ArrayUtils.

    String sfck=mp.get("SFCK")==null?"":mp.get("SFCK").toString();     Str ...

  2. Spring Boot :Failed to instantiate SLF4J LoggerFactory Reported exception:

    Spring Boot出现以下错误: Failed to instantiate SLF4J LoggerFactory Reported exception: Failed to instantia ...

  3. oracle之case

    使用oracle时,不免会用到判断后转换为要展示的值,这里常用case,如下: SELECT (case ) then 'yes' ) then 'no' else 'other' end) --no ...

  4. docker-compose 布署应用nginx中的create-react-app应用获取环境变量

    文章来源:https://www.freecodecamp.org/news/how-to-implement-runtime-environment-variables-with-create-re ...

  5. C++ vector 比较大小

    写在前: vector 是可以直接 进行比较. vector 默认提供的   operator< 内使用了  std::lexicographical_compare  进行比较, operat ...

  6. 【SpringBoot/MVC】从Oracle下载百万条记录的CSV

    工程下载地址:https://files.cnblogs.com/files/xiandedanteng/CsvDownloadOracle20191110-2.rar 画面: 核心代码: 控制器: ...

  7. vuecli3集成easyui

    思路是这样的,首先要将jquery设置成全局,然后就可以正常使用easyUI了. jquery安装命令: npm install --save jquery jquery-easyui安装命令: np ...

  8. NewLife.XCode 上手指南

    想了解什么是XCode 在这里我不对XCode做过多介绍,XCode曾经是一个轻量级ORM组件,现在是一个重量级数据映射框架,支持实体对象数据到不同媒体的数据映射,提供面向对象的方式操作数据库,解决9 ...

  9. osg create shape

    osg::ref_ptr<osg::Node> OSG_Qt_::createSimple() { osg::ref_ptr<osg::Geode> geode = new o ...

  10. jquery iframe取得元素与自适应高度

    总结一下iframe在jquery中怎么操作的,下面我来给各位介绍jquery 获取iframe子/父页面的元素及iframe在jquery高度自适应实现方法,各位朋友可参考. jquery方法: 在 ...