在学习C#的过程中,异步和多线程的学习是一个难点。下面用C#写一段伪代码来使用异步多线程实现一个简单的任务调度器,可以接受多个任务,并使用多线程并行执行这些任务。
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace TaskSchedulerExample
{
class Program
{
static async Task Main(string[] args)
{
// 创建任务列表
List<Task> tasks = new List<Task>();
// 模拟创建多个任务,这里假设有5个任务
for (int i = 0; i < 5; i++)
{
int taskNumber = i + 1;
tasks.Add(Task.Run(async () =>
{
await ExecuteTaskAsync(taskNumber);
}));
}
// 等待所有任务完成
await Task.WhenAll(tasks);
Console.WriteLine("所有任务已完成。");
Console.ReadLine();
}
// 模拟任务执行的异步方法
static async Task ExecuteTaskAsync(int taskNumber)
{
Console.WriteLine($"任务 {taskNumber} 开始执行...");
// 模拟任务执行的时间
await Task.Delay(2000); // 这里延时2秒来模拟任务执行时间
Console.WriteLine($"任务 {taskNumber} 执行完成.");
}
}
}