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

浙公网安备 33010602011771号