C# Queue 队列的基本使用
参考:https://www.cnblogs.com/wjygxjz/p/17772666.html
/// <summary> /// 线程安全队列 /// 如果多个线程同时操作一个队列推荐使用安全队列,因为有可能引起添加队列前数据都是正常的,当出队时数据是null的情况。 /// </summary> public void ConcurrentQueueShow2() { // 创建一个 ConcurrentQueue 实例 ConcurrentQueue<int> queue = new ConcurrentQueue<int>(); // 启动一个任务来向队列中添加元素 Task.Run(() => { for (int i = 0; i < 1000; i++) { queue.Enqueue(i); Task.Delay(10).Wait(); // 延迟10ms以模拟实际操作 } }); // 启动另一个任务来从队列中取出元素 Task.Run(() => { while (true) { int dequeue; if (queue.TryDequeue(out dequeue)) { Console.WriteLine("Dequeued: " + dequeue); } Task.Delay(10).Wait(); // 延迟10ms以模拟实际操作 } }); // 主线程等待任务完成 Console.ReadKey(); }