#unity/日常积累 创建 TaskQueue 的实例,并使用 EnqueueTask 方法来添加任务。这些任务将会按照它们被添加到队列中的顺序执行。 ``` cs public class Program { public static async Task Main(string[] args) { var taskQueue = new TaskQueue(); // Enqueue some tasks taskQueue.EnqueueTask(async () => { Console.WriteLine("Task 1 started"); await Task.Delay(1000); // Simulate work Console.WriteLine("Task 1 completed"); }); taskQueue.EnqueueTask(async () => { Console.WriteLine("Task 2 started"); await Task.Delay(1000); // Simulate work Console.WriteLine("Task 2 completed"); }); // Wait for a while to see the output await Task.Delay(3000); } } ``` ### 解释 - ConcurrentQueue: 保证了任务按照入队顺序存储。 - SemaphoreSlim: 控制同时只有一个任务在执行。当一个任务完成后,释放信号量并尝试执行下一个任务。 这种方法确保了即使在高并发环境下,任务也会按照它们被添加到队列中的顺序依次执行。这对于需要顺序处理的操作,如数据库更新、文件写入等,非常有用。