请描述在 C# 编程中 Queue 集合的用法,并说明其常见的应用场景有哪些?
考察说明
考查对 C# Queue 集合的理解及其实际应用能力
回答思路
- 【回答框架 1】Queue<T> 是 C# 中先进先出的泛型集合,元素在队尾添加,从队头移除。主要方法包括 Enqueue 入队、Dequeue 出队、Peek 查看队头但不移除,Count 属性获取元素数量。
- 【回答框架 2】典型应用包括任务调度、消息队列、广度优先搜索算法、打印机任务队列等。例如,在 BFS 中利用 Queue 保存待访问节点,保证按层遍历。
- 【回答框架 3】Queue 是线程不安全的,多线程环境下需使用 ConcurrentQueue<T> 保证安全。此外,Queue 容量可动态扩展,初始容量默认 0,首次入队时分配。
- 【关键点 1】Queue<T> 提供先进先出的数据访问方式,核心操作是 Enqueue 和 Dequeue。
- 【关键点 2】常见应用场景包括任务排队、消息传递、BFS 算法等。
- 【关键点 3】多线程场景推荐使用 ConcurrentQueue<T> 而非 Queue<T>。
- 【易错点 1】在多线程环境下直接使用 Queue 可能导致数据竞争或不一致,需使用线程安全的集合。
- 【易错点 2】Dequeue 在队列为空时会抛 InvalidOperationException,使用前应先检查 Count 或使用 TryDequeue。