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

一、Demo(同步)

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(异步)

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");        }    }}

posted @ 2025-10-08 13:43  yxysuanfa  阅读(6)  评论(0)    收藏  举报