C#基础:使用线程池执行并行任务

一、Demo(同步)

cs 复制代码
using System;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        // 使用Task.Run(线程池)来创建两个任务并行执行
        Task task1 = Task.Run(() => PrintHello());//运行任务线程1
        Task task2 = Task.Run(() => PrintWorld());//运行任务线程2

        // 确保完成所有任务线程,再执行后面的代码
        Task.WhenAll(task1, task2).Wait();
    }

    // 任务一:每1秒输出 "Hello"
    static void PrintHello()
    {
        while (true)
        {
            Console.WriteLine("Hello");
            Task.Delay(1000).Wait(); // 休眠五秒
        }
    }

    // 任务二:每3秒输出 "World"
    static void PrintWorld()
    {
        while (true)
        {
            Console.WriteLine("World");
            Task.Delay(3000).Wait(); // 休眠六秒
        }
    }
}

二、Demo(异步)

cs 复制代码
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 直接调用异步任务,不需要使用 Task.Run()
        Task task1 = PrintHello(); // 异步任务1
        Task task2 = PrintWorld(); // 异步任务2

        // 等待两个异步任务完成
        await Task.WhenAll(task1, task2); // 等待所有任务完成
    }

    // 假设 PrintHello 和 PrintWorld 是异步方法,返回 Task
    static async Task PrintHello()
    {
        // 模拟异步操作(比如网络请求、IO操作等)
        while (true)
        {
            await Task.Delay(1000); // 假设这是一个异步操作
            Console.WriteLine("Hello");
        }
    }

    static async Task PrintWorld()
    {
        while (true)
        {
            // 模拟异步操作
            await Task.Delay(3000); // 假设这是一个异步操作
            Console.WriteLine("World");
        }
    }
}
相关推荐
小晶晶京京11 分钟前
day34-LNMP详解
linux·运维·服务器
画个太阳作晴天11 分钟前
A12预装app
linux·服务器·前端
青云交17 分钟前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
一阵没来由的风35 分钟前
拒绝造轮子(C#篇)ZLG CAN卡驱动封装应用
c#·can·封装·zlg·基础封装·轮子
CHEN5_021 小时前
【Java基础面试题】Java基础概念
java·开发语言
二十雨辰1 小时前
[TG开发]照片机器人
java·web3
碎像1 小时前
Linux上配置环境变量
linux·运维·服务器
武昌库里写JAVA2 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
落霞的思绪3 小时前
Java设计模式详细解读
java·开发语言·设计模式
Java小白程序员3 小时前
Spring Framework:Java 开发的基石与 Spring 生态的起点
java·数据库·spring