C#__多线程之任务和连续任务

/// <summary>

///

/// 任务:System.Threading.Tasks(异步编程的一种实现方式)

/// 表应完成某个单元工作。这个工作可以在单独的线程中运行,也可以以同步方式启动一个任务。

///

/// 连续任务:

/// 一个任务 a 的执行依赖于另一个任务 b 的完成。(先执行完b,才能执行a)

///

/// </summary>

cs 复制代码
    class Program
    {
        static void Test()
        {
            for (int i = 0; i < 1000; i++)
            {
                Console.Write("A");
            }
        }
        static void Test2()
        {
            for (int i = 0; i < 1000; i++)
            {
                Console.Write("B");
            }
        }
        static void Download()
        {
            Console.WriteLine("Download1任务开始......");
        }
        static void Download2(Task task) // 声明这是一个任务类的方法
        {
            Console.WriteLine("Download2......");
        }
        static void Main(string[] args)
        {
            // 定义任务
            TaskFactory tx = new TaskFactory(); // 提供对创建和计划 System.Threading.Tasks.Task 对象的支持。
            Task t = tx.StartNew(Test); // 创建并启动 任务。


            Task t1 = new Task(Test2); // 表示一个异步操作。
            t1.Start();
            Thread.Sleep(1000); // 留下时间给后台线程执行
            Console.WriteLine("MainThreadEnd......");

            // 连续任务
            Task d1 = new Task(Download);

            // 创建一个在目标 System.Threading.Tasks.Task 完成时异步执行的延续任务。
            // 使用ContinueWith方法需要在Download2方法中添加一个Task类参数
            Task d2 = d1.ContinueWith(Download2); // 完成的d1后继续执行d2

            d1.Start();
            Thread.Sleep(10);
        }
    }

// 调试台

cs 复制代码
AAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMainThreadEnd......
Download1任务开始......
Download2......
请按任意键继续. . .
相关推荐
zihao_tom1 分钟前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
郝学胜-神的一滴2 分钟前
[简化版 GAMES 101] 计算机图形学 03:线性代数下
开发语言·c++·线性代数·图形渲染
Dxy12393102162 分钟前
如何使用 ECharts 绘制 K 线图
开发语言·javascript
fe7tQnVan3 分钟前
从玩具到生产:基于 ChromaDB 打造工程级 RAG 系统
开发语言·c#
不会写DN4 分钟前
Protocol Buffers(.proto)实战入门:Go 生态最常用的接口定义语言
java·前端·golang
lifallen5 分钟前
Flink Agents:从 DataStream 到 Agent 算子的接入与装配
java·大数据·人工智能·python·语言模型·flink
oYD3FlT325 分钟前
MyBatis-缓存与注解式开发
java·缓存·mybatis
Arya_aa9 分钟前
Web基础+JavaEE+容器
java·java-ee
Frank_refuel12 分钟前
QT->信号与槽详解下补充(概述、使用、自定义、连接方式、其他说明)
开发语言·qt
happymaker062612 分钟前
VueCli标准化工程中的组件通信操作
开发语言·前端·javascript