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

  

posted @ 2025-08-23 18:01  microsoft-zhcn  阅读(6)  评论(0)    收藏  举报